diff --git a/1_3_intro_to_js/Interactive-Data-Vis-Spring2024 b/1_3_intro_to_js/Interactive-Data-Vis-Spring2024 new file mode 160000 index 0000000..2e1844f --- /dev/null +++ b/1_3_intro_to_js/Interactive-Data-Vis-Spring2024 @@ -0,0 +1 @@ +Subproject commit 2e1844f9a1157d50e60824f3c05bad6be617b73b diff --git a/2_1_quantities_and_amounts/MoMA_topTenNationalities.csv b/2_1_quantities_and_amounts/MoMA_topTenNationalities.csv new file mode 100644 index 0000000..e1840b0 --- /dev/null +++ b/2_1_quantities_and_amounts/MoMA_topTenNationalities.csv @@ -0,0 +1,11 @@ +Nationality,Count +American,5181 +German,965 +British,860 +French,847 +Italian,536 +Japanese,507 +Swiss,297 +Dutch,274 +Russian,262 +Austrian,239 \ No newline at end of file diff --git a/2_1_quantities_and_amounts/index.html b/2_1_quantities_and_amounts/index.html index de6a401..9182a2c 100644 --- a/2_1_quantities_and_amounts/index.html +++ b/2_1_quantities_and_amounts/index.html @@ -1,14 +1,16 @@ - - - Interactive Data Visualization Tutorial - - - - -

Section 2 | Tutorial 1 | Quantities and Amounts

-
- - - - \ No newline at end of file + + + + Interactive Data Visualization Tutorial + + + + + +

MoMA Collection by Country Top Ten

+ + + + + diff --git a/2_1_quantities_and_amounts/main.js b/2_1_quantities_and_amounts/main.js index 3981be1..b5e7cf8 100644 --- a/2_1_quantities_and_amounts/main.js +++ b/2_1_quantities_and_amounts/main.js @@ -1,18 +1,52 @@ - /* CONSTANTS AND GLOBALS */ -// const width = ; -// const height = ; +const width = 960, height = 500; +const margin = { top: 20, right: 30, bottom: 40, left: 100 }; + +// Create SVG canvas +const svg = d3.select("#container") + .append("svg") + .attr("width", width) + .attr("height", height) + .append("g") + .attr("transform", `translate(${margin.left},${margin.top})`); /* LOAD DATA */ -d3.csv('../data/MoMA_topTenNationalities.csv', d3.autoType) - .then(data => { - console.log("data", data) +d3.csv('MoMA_topTenNationalities.csv', d3.autoType) +.then(data => { + // Define color scale + const colorScale = d3.scaleOrdinal(d3.schemeTableau10); // Uses a D3 color scheme + + // Define your scales based on the data + const xScale = d3.scaleLinear() + .domain([0, d3.max(data, d => d.Count)]) // Make sure 'Count' matches your CSV + .range([0, width - margin.left - margin.right]); + + const yScale = d3.scaleBand() + .domain(data.map(d => d.Nationality)) + .range([0, height - margin.top - margin.bottom]) + .padding(0.1); + + // Add bars + svg.selectAll(".bar") + .data(data) + .enter() + .append("rect") + .attr("class", "bar") + .attr("x", 0) // Bars start at x=0 + .attr("y", d => yScale(d.Nationality)) + .attr("width", d => xScale(d.Count)) + .attr("height", yScale.bandwidth()) + .attr("fill", "white") // Fill bars with white + .attr("stroke", d => colorScale(d.Nationality)) // Use the color scale for the stroke + .attr("stroke-width", 2); // Set the width of the stroke - /* SCALES */ - /** This is where you should define your scales from data to pixel space */ - + // Add Y Axis + svg.append("g") + .call(d3.axisLeft(yScale)); - /* HTML ELEMENTS */ - /** Select your container and append the visual elements to it */ + // Add X Axis + svg.append("g") + .attr("transform", `translate(0,${height - margin.top - margin.bottom})`) + .call(d3.axisBottom(xScale)); +}); - }) \ No newline at end of file diff --git a/2_1_quantities_and_amounts/style.css b/2_1_quantities_and_amounts/style.css index 35a1801..ad88989 100644 --- a/2_1_quantities_and_amounts/style.css +++ b/2_1_quantities_and_amounts/style.css @@ -1,5 +1,5 @@ body { - font-family: "Source Sans Pro", sans-serif; + font-family: "Helvetica Neue", sans-serif; font-size: 16px; padding: 1em; } @@ -10,8 +10,8 @@ h1 { } h3 { - font-size: 2em; - margin: 0.25em 0; + font-size: 4em; + margin: 0.30em 0; } p { diff --git a/2_2_distributions/MoMA_distributions.csv b/2_2_distributions/MoMA_distributions.csv new file mode 100644 index 0000000..2747772 --- /dev/null +++ b/2_2_distributions/MoMA_distributions.csv @@ -0,0 +1,312 @@ +Title,Artist,ConstituentID,ArtistBio,Nationality,BeginDate,EndDate,Artist Lifespan,Gender,Date,Length (cm),Width (cm) +Rain Drapery Fabric,Alexander Girard,7333,"(American, 1907–1993)",(American),1907,1993,86,(Male),1953,174,99 +Rain (furnishing fabric),Alexander Girard,7333,"(American, 1907–1993)",(American),1907,1993,86,(Male),1953,134.6,113 +Harlequin Printed Fabric,S.M. Hexter Company,9206,,(),0,0,0,(),c. 1955,137.1603,111.7602 +Circles,Alexander Girard,7333,"(American, 1907–1993)",(American),1907,1993,86,(Male),1951,210.8204,113.0302 +Abacus (Furnishing fabric),Paul Rand,4809,"(American, 1914–1996)",(American),1914,1996,82,(Male),c.1946,135.8903,113 +Basics (Drapery fabric),Martin,7341,(Nationality unknown),(Nationality unknown),0,0,0,(Male),c. 1953,149.8603,102.8702 +Border Riff #3 Sheer Fabric,Ross Littell,3570,"(American, 1924–2000)",(American),1924,2000,76,(Male),c. 1948,163.8303,116.8402 +Multicolored Squares,Alexander Girard,7333,"(American, 1907–1993)",(American),1907,1993,86,(Male),c. 1952,158.7503,118.1102 +Sheer Fabric Sample,Alexander Girard,7333,"(American, 1907–1993)",(American),1907,1993,86,(Male),c. 1952,180.3404,121.9202 +Cassius (Casement cloth),Emily Belding,7329,"(American, 1904–1999)",(American),1904,1999,95,(Female),c. 1954,170.1803,120.7 +Ovals #2 textile (Drapery fabric),Joel Robinson,7348,"(American, 1915 – 2012)",(American),1915,2012,97,(Male),1954–1955,158.7,114.3 +Triad,Eszter Haraszty,7336,"(American, born Hungary. 1920–1994)",(American),1920,1994,74,(Female),c. 1951,163.8303,114.3002 +Triad,Eszter Haraszty,7336,"(American, born Hungary. 1920–1994)",(American),1920,1994,74,(Female),c. 1951,151.7653,111.7602 +Triad,Eszter Haraszty,7336,"(American, born Hungary. 1920–1994)",(American),1920,1994,74,(Female),c. 1951,155,113.0302 +Stone on Stone,Vera (Vera Neumann),7364,"(American, 1909–1993)",(American),1909,1993,84,(Female),c. 1950,174,109.2202 +Trapeze,"Gretl Wollner, Leo Wollner","7365, 37596","(Austrian, 1920–2006) (Austrian, 1925–1995)",(Austrian) (Austrian),0,0,0,(Female) (),c. 1955,180.3,114.3002 +Banda,Angelo Testa,7357,"(American, 1921–1984)",(American),1921,1984,63,(Male),c. 1949,146,113 +Banda,Angelo Testa,7357,"(American, 1921–1984)",(American),1921,1984,63,(Male),c. 1949,132.0803,116.8402 +Tracy Sheer Fabric,Eszter Haraszty,7336,"(American, born Hungary. 1920–1994)",(American),1920,1994,74,(Female),1952,139.7,110.5 +Square Dance Sail Cloth,Vera (Vera Neumann),7364,"(American, 1909–1993)",(American),1909,1993,84,(Female),c. 1950,185.4204,114.3002 +Decorated Panel,Lynn Alexander,7327,"(American, 1920–1963)",(American),1920,1963,43,(Female),c. 1954,354.3307,86.3602 +Upholstery Fabric Sample,Marli Ehrman,1694,"(American, born Germany. 1904–1982)",(American),1904,1982,78,(Female),Before 1975,82.5,59 +Upholstery Fabric Sample,Marli Ehrman,1694,"(American, born Germany. 1904–1982)",(American),1904,1982,78,(Female),Before 1975,93.3,96.5 +Casement cloth,Marianne Strengell,5692,"(American, born Finnish. 1909–1998)",(American),1909,1998,89,(Female),1940s,67.3,62.2301 +Casement Cloth,Marianne Strengell,5692,"(American, born Finnish. 1909–1998)",(American),1909,1998,89,(Female),c. 1940,78.8,54.6101 +Casement cloth,Marianne Strengell,5692,"(American, born Finnish. 1909–1998)",(American),1909,1998,89,(Female),1940s,66,62.2301 +Upholstery Fabric,Marianne Strengell,5692,"(American, born Finnish. 1909–1998)",(American),1909,1998,89,(Female),1950s,90.1702,55.8801 +Sample Blanket Showing Three Weaves,Dorothy Liebes,7344,"(American, 1899–1972)",(American),1899,1972,73,(Female),c. 1946,66,41.9101 +Drapery fabric,Dorothy Liebes,7344,"(American, 1899–1972)",(American),1899,1972,73,(Female),c. 1946,94,63.5 +Mexican plaid woven textile,Dorothy Liebes,7344,"(American, 1899–1972)",(American),1899,1972,73,(Female),c. 1940,128.2703,139.7003 +Upholstery textile,Dorothy Liebes,7344,"(American, 1899–1972)",(American),1899,1972,73,(Female),c.1930-1947,61,50.8001 +Upholstery Fabric,Marli Ehrman,1694,"(American, born Germany. 1904–1982)",(American),1904,1982,78,(Female),c. 1947,132.0803,121.9202 +Stacatto Printed Fabric,Yvonne Delattre,7330,(Swiss),(Swiss),0,0,0,(Female),c. 1946,198.1,90.2 +Shades and Tints (Drapery fabric),Emily Belding,7329,"(American, 1904–1999)",(American),1904,1999,95,(Female),c. 1954,175.2604,105.4102 +Shades and Tints (Drapery fabric),Emily Belding,7329,"(American, 1904–1999)",(American),1904,1999,95,(Female),c. 1954,156.2103,106.6802 +Handwoven Fabric,Emily Belding,7329,"(American, 1904–1999)",(American),1904,1999,95,(Female),c. 1955,104.7752,29.2 +Handwoven Scarf Material,Emily Belding,7329,"(American, 1904–1999)",(American),1904,1999,95,(Female),c. 1955,109.2202,26 +Printed Textile,Marianne Strengell,5692,"(American, born Finnish. 1909–1998)",(American),1909,1998,89,(Female),1950s,177.8,91.5 +Casement Fabric,Jack Lenor Larsen,7338,"(American, born 1927)",(American),1927,0,0,(Male),1949,214.6304,109.2202 +Leather Cloth Upholstery Fabric,Jack Lenor Larsen,7338,"(American, born 1927)",(American),1927,0,0,(Male),1955,276.8606,96.5 +Interplay Casement Fabric,Jack Lenor Larsen,7338,"(American, born 1927)",(American),1927,0,0,(Male),1960,208.2804,123.2 +Upholstery textile,Dorothy Liebes,7344,"(American, 1899–1972)",(American),1899,1972,73,(Female),c. 1946,105.4102,120.7 +Campagna (Furnishing fabric),Angelo Testa,7357,"(American, 1921–1984)",(American),1921,1984,63,(Male),1951,68.6,86.3 +Drapery Material Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1945,105.4,105.4 +Cleaver,Charles D. Briddell,772,(American),(American),0,0,0,(Male),c. 1944-47,28.9,10.8 +Drapery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),c. 1948,174,109.2 +Oceana Serving Tray,Russel Wright,6460,"(American, 1904–1976)",(American),1904,1976,72,(Male),1931,49.8,11.5 +Cleaverette (model 71),Charles D. Briddell,772,(American),(American),0,0,0,(Male),c. 1944-47,31.1,7.3 +Drapery material (Used in the Rockefeller Guest House),Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1942–1944,348,91.4 +Display Material Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1949,174.9428,111.7 +Drapery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),c. 1935,320,82.5 +Drapery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1961,121.9,132.1 +Pedocal,Yoshihiro Kimura,8420,"(Japanese, born 1947)",(Japanese),1947,0,0,(Male),1996,579.1212,119.3802 +Washi & Wool,Osamu Mita,8421,(Japanese),(Japanese),0,0,0,(Male),1997,391.1608,66.0401 +Drapery Material,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),1926,24.1,10.2 +Reversible Coat Material,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),1923-28,20.3,15.2 +Suit Material,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),c.1925-28,29.2,19.7 +Suit Material,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),c.1925-28,15.5575,7.3025 +Suit Material,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),c.1925-28,17.78,6.985 +Upholstery fabric for tubular steel chairs,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),1928,15.2,14.9 +Upholstery fabric for tubular steel chairs,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),1928,16.1925,15.24 +Upholstery fabric for tubular steel chairs,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),1928,12.7,14 +Upholstery fabric for tubular steel chairs,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),c. 1925,18.7,12.2 +Upholstery fabric for tubular steel chairs,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),c. 1925,15.5575,11.7475 +Upholstery fabric for tubular steel chairs,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),c. 1925,17.145,6.0325 +Upholstery Material,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),c. 1926,32.7026,31.7 +Upholstery fabric for tubular steel chairs,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),c. 1925,10.4775,6.985 +Upholstery fabric for tubular steel chairs,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),c. 1925,11.8,6.5088 +Tablecloth material,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),1923–1928,33,21.6 +Upholstery fabric for tubular steel chairs,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),1923–1928,34.2901,20.32 +Reversible Drapery Material,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),1923-28,45.7201,24.13 +Suit Material,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),1925,23.495,15.24 +Reversible Coat Material,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),1926-27,20.3,13 +Reversible Coat Material,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),1923-28,19.3675,15.875 +Reversible Coat Material,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),1923-28,20.6,20.6 +Brickyard,Keiji Otani,8422,"(Japanese, born 1967)",(Japanese),1967,0,0,(Male),1997,477.521,101.6002 +Triaxial Fabric,"Sakase Adtech Co., Fukui, Japan",9581,,(Japanese),0,0,0,(),1991,409.5758,161.2903 +Mat,,,,,0,0,0,,c. 1930-40,61,45.7201 +Moss Temple,Reiko Sudo,7045,"(Japanese, born 1953)",(Japanese),1953,0,0,(Female),1997,327.6607,99.0602 +Casement Cloth,Ellen Siegel,7360,(American),(American),0,0,0,(Female),1956,106.7,128.2 +Shutter,Reiko Sudo,7045,"(Japanese, born 1953)",(Japanese),1953,0,0,(Female),1997,492.761,80.0102 +Upholstery textile,Dorothy Liebes,7344,"(American, 1899–1972)",(American),1899,1972,73,(Female),c. 1946,22.86004572,17.78003556 +Fish,Dora Jung,2953,"(Finnish, 1906–1980)",(Finnish),1906,1980,74,(Female),c. 1969,50.8001,32.3851 +Multi-Colored Minime,Sheila Hicks,2631,"(American, born 1934)",(American),1934,0,0,(Female),c. 1962,26.6701,29.2101 +Badagara Cloth,Sheila Hicks,2631,"(American, born 1934)",(American),1934,0,0,(Female),1965,40.6401,43.1801 +Badagara Cloth,Sheila Hicks,2631,"(American, born 1934)",(American),1934,0,0,(Female),1965,36.8301,43.1801 +Kerala Cloth,Sheila Hicks,2631,"(American, born 1934)",(American),1934,0,0,(Female),1965,33.6551,48.2601 +Bottle Opener,Unidentified Designer,6011,(Nationality unknown),(Nationality unknown),0,0,0,(),1946,13.3,6.35 +Ladle,"G.M. Thurnauer Co., Czechoslovakia",9629,,(Czech),0,0,0,(),1918-1942,29.2,8.7 +Crinkled Sheer Fabric,Junichi Arai,7044,"(Japanese, 1932–2017)",(Japanese),1932,2017,85,(Male),c. 1995,609.6,81.2802 +Crinkled Metallic Fabric,Junichi Arai,7044,"(Japanese, 1932–2017)",(Japanese),1932,2017,85,(Male),c. 1995,431.8009,86.3 +Clothes Brush,Unidentified Designer,6011,(Nationality unknown),(Nationality unknown),0,0,0,(),c. 1900,12.7,3.5 +Letter Opener,Marcello Nizzoli,4316,"(Italian, 1887–1969)",(Italian),1887,1969,82,(Male),1960,21.9075,4.445 +Tablecloth,"Josef Hoffmann, Berthold Löffler","2694, 3585","(Austrian, 1870–1956) (Austrian, 1874–1960)",(Austrian) (Austrian),0,0,0,(Male) (Male),1905,133.4,135.8903 +Scarf,Eiji Miyamoto,7507,"(Japanese, born 1948)",(Japanese),1948,0,0,(Male),1991,195.5804,85.0902 +Spatula,"Karlsson & Nilsson, Sweden",9693,,(Swedish),0,0,0,(),c. 1946,28.6,5.1 +Adjustable Garden Rake,Vernon P. Steele,5617,(American),(American),0,0,0,(Male),1945,127,24.765 +Isowave Textile,"N.V. Schlegel S.A., Gistel, Belgium",9712,,(Belgian),0,0,0,(),c. 1995,600.7112,102.9 +Jelly Fish Fabric,Reiko Sudo,7045,"(Japanese, born 1953)",(Japanese),1953,0,0,(Female),c. 1994,637.5,86.4 +Fabric,Reiko Sudo,7045,"(Japanese, born 1953)",(Japanese),1953,0,0,(Female),c. 1994,614.6812,116.8402 +Spanner,Frederick Kiesler,3091,"(American, born Austria-Hungary. 1890–1965)",(American),1890,1965,75,(Male),1942,106.7,71.1 +Corn Silk Fabric,Reiko Sudo,7045,"(Japanese, born 1953)",(Japanese),1953,0,0,(Female),c. 1994,619.7,76.2 +Rakugaki Fabric,Reiko Sudo,7045,"(Japanese, born 1953)",(Japanese),1953,0,0,(Female),c. 1994,645.1613,121.9202 +Fabric,Reiko Sudo,7045,"(Japanese, born 1953)",(Japanese),1953,0,0,(Female),c. 1994,614.6812,116.8 +Bubble Pack Fabric,Reiko Sudo,7045,"(Japanese, born 1953)",(Japanese),1953,0,0,(Female),c. 1994,607,73.6 +Fabric,Reiko Sudo,7045,"(Japanese, born 1953)",(Japanese),1953,0,0,(Female),c. 1994,600.0762,83.8 +Torayca Textile,"Toray Industries, Inc., Tokyo",9755,"(Japanese, established 1926)",(Japanese),1926,0,0,(),Unknown,1000.2,100 +Tire Cord,"Toray Industries, Inc., Tokyo, Toyo Tire Cord Co. Ltd.","9755, 22668","(Japanese, established 1926) (Japanese)",(Japanese) (Japanese),0,0,0,() (),c.1986–1996,769.6215,121.9202 +Wave Process Fabric,Yamazaki Vellodo Co. Ltd.,7506,(Japanese),(Japanese),0,0,0,(),c. 1995,482.6,55.9 +Textile,Koichi Yoshimura,7505,"(Japanese, born 1940)",(Japanese),1940,0,0,(Male),1992,376,111.7602 +Axe,"Collins Company, Collinsville, CT",9830,(est. 1826),(American),1826,0,0,(),c. 1945,70.6,16.1925 +Red Devil (Drapery fabric),Marianne Strengell,5692,"(American, born Finnish. 1909–1998)",(American),1909,1998,89,(Female),1947,457.2,127 +Child's Wheelbarrow,Gerrit Rietveld,4922,"(Dutch, 1888–1964)",(Dutch),1888,1964,76,(Male),1923,85.0902,28.8926 +Flint Spatula,"Ekco Products Co., Chicago, IL",9259,(est. 1888),(American),1888,0,0,(),1943-46,34.9,8.1 +Flint Ladle,"Ekco Products Co., Chicago, IL",9259,(est. 1888),(American),1888,0,0,(),1943-46,30.5,7.8 +Mantilla Casement Gauze,Henning Watterston,6268,"(American, 1916–2009)",(American),1916,2009,93,(Male),Before 1948,177.8004,137.1603 +Heirloom Casement Gauze,Henning Watterston,6268,"(American, 1916–2009)",(American),1916,2009,93,(Male),Before 1948,172.7203,137.1603 +Furnishing Fabric,Richard Riemerschmid,4918,"(German, 1868–1957)",(German),1868,1957,89,(Male),1905,20,20.3 +Group of 18 Textile Samples,Richard Riemerschmid,4918,"(German, 1868–1957)",(German),1868,1957,89,(Male),1905-1926,20.32,20.32 +Drapery Fabric,Richard Riemerschmid,4918,"(German, 1868–1957)",(German),1868,1957,89,(Male),1907,20,20 +Drapery Fabric,Richard Riemerschmid,4918,"(German, 1868–1957)",(German),1868,1957,89,(Male),1908,19.685,19.7 +Drapery Fabric,Richard Riemerschmid,4918,"(German, 1868–1957)",(German),1868,1957,89,(Male),1908,12.065,21.9075 +Furnishing Fabric,Richard Riemerschmid,4918,"(German, 1868–1957)",(German),1868,1957,89,(Male),1905,20,20.2 +Furnishing Fabric,Richard Riemerschmid,4918,"(German, 1868–1957)",(German),1868,1957,89,(Male),1908,20,20.3 +Furnishing Fabric,Richard Riemerschmid,4918,"(German, 1868–1957)",(German),1868,1957,89,(Male),c. 1908-09,20,20.3 +Drapery Fabric,Richard Riemerschmid,4918,"(German, 1868–1957)",(German),1868,1957,89,(Male),1926,20,20.7 +Fabric Sample,Richard Riemerschmid,4918,"(German, 1868–1957)",(German),1868,1957,89,(Male),c. 1908,20,19.05 +Fabric Sample,Richard Riemerschmid,4918,"(German, 1868–1957)",(German),1868,1957,89,(Male),1910,20,19.4 +Fabric Sample,Richard Riemerschmid,4918,"(German, 1868–1957)",(German),1868,1957,89,(Male),c. 1905,19.7,20 +Furnishing Fabric,Richard Riemerschmid,4918,"(German, 1868–1957)",(German),1868,1957,89,(Male),1905,20.0025,20.32 +Upholstery Fabric,Richard Riemerschmid,4918,"(German, 1868–1957)",(German),1868,1957,89,(Male),c. 1905,20.32,20.955 +Drapery Fabric,Richard Riemerschmid,4918,"(German, 1868–1957)",(German),1868,1957,89,(Male),c. 1905,20,20 +Drapery Fabric,Richard Riemerschmid,4918,"(German, 1868–1957)",(German),1868,1957,89,(Male),c. 1905,20,20.2 +Drapery Fabric,Richard Riemerschmid,4918,"(German, 1868–1957)",(German),1868,1957,89,(Male),1905,20,20 +Flint Kitchen Spoon,"Ekco Products Co., Chicago, IL",9259,(est. 1888),(American),1888,0,0,(),1943-46,28.9,6.2 +Flint Spatula,"Ekco Products Co., Chicago, IL",9259,(est. 1888),(American),1888,0,0,(),1943-46,26.7,7 +Flint Kitchen Fork,"Ekco Products Co., Chicago, IL",9259,(est. 1888),(American),1888,0,0,(),1943-46,29.2,3.7 +Tablecloth,Unidentified Designer,6014,(German),(German),0,0,0,(),1923,151.1,139.7 +Ron Fork,Dean Pollock,4674,"(American, 1897–1971)",(American),1897,1971,74,(Male),c. 1936-47,27.3,4.1 +Vernier Depth Gauge (model 600),"Brown & Sharpe Mfg. Co., Providence, RI",10044,"(American, founded 1833)",(American),1833,0,0,(),Before 1934,13.6525,6.6675 +Carpet Beater (model KS 1475),Gino Colombini,1194,"(Italian, born 1915)",(Italian),1915,0,0,(Male),1957,58.4,15.875 +Kitchen Brush,Gino Colombini,1194,"(Italian, born 1915)",(Italian),1915,0,0,(Male),1955,15.6,7 +Bull in the Sun Rug,Arshile Gorky,2252,"(American, born Van Province, Ottoman Empire (present-day Turkey). c. 1904–1948)",(American),1904,1948,44,(Male),1942,215.9004,295.9106 +Bracelet,Unidentified Designer,6011,(Nationality unknown),(Nationality unknown),0,0,0,(),c.1940,20.3,1.9 +Bread Knife,,,,,0,0,0,,1950s,31.1,2.857505715 +Combination Meat Chopper and Tenderizer,,,,,0,0,0,,1950s,27.3,5.397510795 +Letter Opener,Hector Guimard,2407,"(French, 1867–1942)",(French),1867,1942,75,(Male),c. 1907,17.1,2.1 +Scallops Screen and Casement Fabric,Roy Ginstrom,2168,"(American, 1921–1977)",(American),1921,1977,56,(Male),c. 1955,243.8,101.6 +BF Sewing Machine (model 562457),Emilio Cerri,1051,"(Italian, died 1947)",(Italian),0,1947,1947,(Male),1934,43.1801,19.685 +Fabric,Harry Napper,4223,"(British, 1860–1930)",(British),1860,1930,70,(Male),c. 1902,38.8,46.2 +Fabric,Harry Napper,4223,"(British, 1860–1930)",(British),1860,1930,70,(Male),c. 1902,41.5926,39.2113 +Pillowcase,Claire Wagner Kosterlitz,3225,"(American, born Germany. 1903–1997)",(American),1903,1997,94,(Female),1925-26,54.6101,53.3401 +Knife,"Maria Benktzon, Sven-Eric Juhlin","6935, 2950","(Swedish, born 1946) (Swedish, born 1940)",(Swedish) (Swedish),0,0,0,(Female) (Male),1974,34.3,10.16 +Brigade Firefighter Helmet,Alexander Bally,315,"(American, born 1938)",(American),1938,0,0,(Male),1984,33.0201,28 +Double Helix Knife,Ward Bennett,478,"(American, 1917–2003)",(American),1917,2003,86,(Male),1985,23.1775,1.27 +Double Helix Fork,Ward Bennett,478,"(American, 1917–2003)",(American),1917,2003,86,(Male),1985,20.0025,2.54 +Double Helix Soupspoon,Ward Bennett,478,"(American, 1917–2003)",(American),1917,2003,86,(Male),1985,19,3.175 +Double Helix Spoon,Ward Bennett,478,"(American, 1917–2003)",(American),1917,2003,86,(Male),1985,16.51,2.8 +Double Helix Salad Fork,Ward Bennett,478,"(American, 1917–2003)",(American),1917,2003,86,(Male),1985,17.2,2.3 +Platter,Tapio Wirkkala,6409,"(Finnish, 1915–1985)",(Finnish),1915,1985,70,(Male),1951,48.2601,25.0826 +Champagne Bottle Opener,"J.A. Henckels, Solingen, Germany",2589,(est. 1731),(),1731,0,0,(),n.d.,19,4.8 +Feather Flurries Fabric (no. 9-166A),Reiko Sudo,7045,"(Japanese, born 1953)",(Japanese),1953,0,0,(Female),c. 1993,186.3729,117.7927 +Cracked Cloth Fabric (no. 9-146A),Reiko Sudo,7045,"(Japanese, born 1953)",(Japanese),1953,0,0,(Female),1993,449.5809,116.8402 +Wall Hanging (Woven in 1964 under Albers' supervision from the original design),Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1927,147.9,121.3 +Fabric (no. 9-158),Reiko Sudo,7045,"(Japanese, born 1953)",(Japanese),1953,0,0,(Female),1992,800.1016,97.7902 +Tailor Shears,"J.A. Henckels, Solingen, Germany",2589,(est. 1731),(),1731,0,0,(),c. 1900,34.2901,10.16 +Greta (no. 55),Sheila Hicks,2631,"(American, born 1934)",(American),1934,0,0,(Female),1961,22.86,14.605 +Hat Pin,Percy Stamp,5598,(British),(British),0,0,0,(Male),1908,22.6,2.2 +Martell Curtain Fabric,"Cheney Greef & Co., New York, NY",10361,,(American),0,0,0,(),1944-1954,124.5,49.5 +Kodiak Special Bow,Bill Stewart,7152,"(American, born 1920)",(American),1920,0,0,(Male),c. 1960,154.9403,7.3025 +Jai alai cesta,José Echavé,1674,"(Spanish, 1907–1999)",(Spanish),1907,1999,92,(Male),c.1962,66,15.24 +Tablecloth,Dora Jung,2953,"(Finnish, 1906–1980)",(Finnish),1906,1980,74,(Female),1957,162.6,307.3406 +Woven Wall Hanging,Benita Koch-Otte,3180,"(German, 1892–1976)",(German),1892,1976,84,(Female),1923–1924,228.6004572,289.5605791 +Fishing Knife,Angelo Patin,4518,(Italian),(Italian),0,0,0,(Male),Unknown,20.3,3 +Wall Hanging,Franklin Colvin,1204,(American),(American),0,0,0,(Male),1955,210.8,57.1 +Sailing Knife and Marlinespike (model 468),Charles Currey,26650,"(British, 1890–1973)",(British),1890,1973,83,(Male),c. 1960,9.2,3.7 +Target Pistol (model 103),"Hämmerli, Ltd., Lenzburg, Switzerland",10383,,(Swiss),0,0,0,(),c.1956,40.6,14.6 +Skis,Howard Head,2561,"(American, 1914–1991)",(American),1914,1991,77,(Male),1947-50,195.5804,6.985 +Expert Model Surfboard,Hobie Alter,128,"(American, born 1933)",(American),1933,0,0,(Male),1958,320,50.8 +Cricket Bat (model 9000),"Slazengers Ltd., England",9009,(established 1881),(British),1881,0,0,(),Before 1962,87,10.8 +Hand Mirror,Unidentified Designer,6020,(British),(British),0,0,0,(),c. 1900,26,12 +Carpet,Bart van der Leck,6072,"(Dutch, 1876–1958)",(Dutch),1876,1958,82,(Male),1929–1935,337.8,233.7 +Nutcracker,Robert Welch,7133,"(British, 1929–2000)",(British),1929,2000,71,(Male),1958,15.3,4.8 +Near East Wall Hanging,Mary Walker Phillips,4601,"(American, born 1923)",(American),1923,0,0,(Female),1964,279.4006,115.5 +Blue Letter,Sheila Hicks,2631,"(American, born 1934)",(American),1934,0,0,(Female),1959,45.0851,43.1801 +Table with Wheels (model 2652),Gae Aulenti,241,"(Italian, 1930–2012)",(Italian),1930,2012,82,(Female),1980,138.7478,69.8501 +Prayer Rug,Sheila Hicks,2631,"(American, born 1934)",(American),1934,0,0,(Female),1965,220.980442,109.2202184 +Slicing Knife,"W.R. Case & Sons Cutlery Co., Bradford, PA",9550,(est. 1889),(American),1889,0,0,(),c.1939,33.6,1.9 +Folding Iron,"The Winsted Hardware Manufacturing Co., Winsted, CT",10613,(American),(American),0,0,0,(),c. 1940,20.3,10.2 +Free-Hanging Room Divider,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),c. 1949,221,82.5 +Upholstery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1923-26,20.6375,8.89 +Upholstery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1929,18.415,10.795 +Wall-Covering Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1929,29.8451,11.43 +Wall-covering material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1929,30.1626,11.43 +Wall-covering material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1929,30.4801,11.43 +Hand Mirror,Olivier,7183,(French),(French),0,0,0,(),c. 1900,26.6701,19.685 +Wall-Covering Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1929,41.9,65.7226 +Wall-Covering Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1929,47.6,56.5 +Room-Divider Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1949,33,41.9 +Drapery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1929,11.4,19 +Drapery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1929,10.8,20.3 +Drapery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1929,11.4,19.1 +Drapery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1929,10.8,19 +Italicus Poultry Shears (model 397),Antonia Campi,941,"(Italian, born 1921)",(Italian),1921,0,0,(Female),1960,24.6063,4.4 +Drapery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1929,11.1,40.6 +Drapery material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1923–1926,9.2,20 +Drapery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1944,47,114.3 +Drapery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1946-47,31.7,43.2 +Drapery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1941,43.2,134.6 +Drapery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1945,34.3,43.2 +Drapery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1927,14.9,20.3 +Yellow Abakan,Magdalena Abakanowicz,38,"(Polish, 1930–2017)",(Polish),1930,2017,87,(Female),1967–1968,314.9606,304.8006 +Drapery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1927,15.9,10.8 +Automobile Upholstery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,7.6,6.3 +Woven Fabric Samples,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,3.81,9.525 +Assorted Woven Fabric Samples,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,3.81,11.43 +Automobile Upholstery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,7.6,6.7 +Automobile Upholstery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,7.6,6.7 +Bedspread Material for Harvard Graduate Center Dormitory,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),c. 1949,30.4801,25.4001 +Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,5.4,15.6 +Automobile Upholstery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,7.3,6.7 +Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,9.5,14.6 +Room-Dividing Curtain Material for Harvard Graduate Center Dormitory,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1950,21.6,22.5 +Woven Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,43.8151,17.5 +Room-Dividing Curtain Material for Harvard Graduate Center Dormitory,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1950,37.5,42.2 +Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,27,16.8 +Automobile Upholstery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,7.62,6.3 +Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,26.9876,18.4 +Wall-Covering Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),c. 1950,29.2,12.1 +Wall-Covering Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),c. 1950,28.6,12.7 +Wall-Covering Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,26.6701,10.16 +Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,24.4,18.4 +Drapery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1941,37.4651,43.2 +Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),c. 1949,45.1,38.1 +Automobile Upholstery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,7.6,6.7 +Woven Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,23.8125,20.0025 +Good Grips Paring Knife,"Smart Design, New York",10725,"(American, est. 1979)",(American),1979,0,0,(),1989,19.7,3.5 +Woven Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),c. 1951,22.86,16.5 +Woven Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),c. 1951,24.765,16.5 +Woven Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),c. 1951,21,17.1 +Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),c. 1951,14.605,8.3 +Upholstery Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,5.4,5.6 +Casement Cloth,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1950,27.6226,17.1 +Woven Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,14.9225,18.7 +Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),c. 1951,12.7,8.3 +Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,13.97,7 +Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,16.51,13.6525 +Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,22.225,17.8 +Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),c. 1959,19,17.8 +Casement Cloth Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,7.62,17.8 +Woven Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,22.225,12 +Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),c. 1944,18.4,15.6 +Woven Fabric Samples,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1933,3.81,9.525 +Casement Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),c. 1960,41.9,36.8 +Wall-Covering Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,13.335,20.3 +Wall-Covering Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),After 1933,12.1,15.6 +Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1940,17.8,22.9 +"Window Curtain Fabric Sample for Theater Cafe, Dessau",Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1927,7,105.4 +Display Material,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1947,31.1,52.1 +Display-Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1949,42.5451,48.9 +Display Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1944,88.9,96.5 +Double Faced Rug,Bart van der Leck,6072,"(Dutch, 1876–1958)",(Dutch),1876,1958,82,(Male),1929–1935,124.5,55.2 +Fabric Sample,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),c. 1932-66,24.765,19 +Fabric Sample,Gunta Stölzl,5675,"(Swiss, born Germany. 1897–1983)",(Swiss),1897,1983,86,(Female),c. 1932-66,95.2502,78.7402 +Lobster Pick,Peter Sciascin,5294,(American),(American),0,0,0,(Male),Unknown,20.955,1.905 +Pruning Shears,Rudolf Moethe,4042,(German),(German),0,0,0,(Male),1951,21,5.1 +Knife,Ward Bennett,478,"(American, 1917–2003)",(American),1917,2003,86,(Male),1980,23.495,2.3 +Spoon,Ward Bennett,478,"(American, 1917–2003)",(American),1917,2003,86,(Male),1980,19.2088,3.6 +Desert Spoon,Ward Bennett,478,"(American, 1917–2003)",(American),1917,2003,86,(Male),1980,16.1925,3 +Fork,Ward Bennett,478,"(American, 1917–2003)",(American),1917,2003,86,(Male),1980,19.2,1.905 +Salad Fork,Ward Bennett,478,"(American, 1917–2003)",(American),1917,2003,86,(Male),1980,16.8275,1.905 +Tablecloth Fabric Sample,Anni Albers,96,"(American, born Germany. 1899–1994)",(American),1899,1994,95,(Female),1930,59.3,72.4 +Carving Fork,Vico Magistretti,3688,"(Italian, 1920–2006)",(Italian),1920,2006,86,(Male),1980,32.8,1.905 +Carving Knife,Vico Magistretti,3688,"(Italian, 1920–2006)",(Italian),1920,2006,86,(Male),1980,33,3.2 +Twist Tray for Crushed Ice,Gits Molding Corp.,2181,(American),(American),0,0,0,(),c. 1953,25.4001,10.2 +Watch,Flemming Bo Hansen,7150,"(Danish, born 1955)",(Danish),1955,0,0,(Male),1989,23.2,2.2 +Shoemaker's Tool,Sargent & Co.,10034,,(American),0,0,0,(),1916,30.4801,13.0175 +Bottle Opener,John Hays Hammond,2485,"(American, 1888–1965)",(American),1888,1965,77,(Male),1948,15.9,1.5875 +Storage Boxes with Covers,Unidentified Designer,6021,(American),(American),0,0,0,(),Unknown,4.7625,2.2225 +Roast Clamp,"The Richter & Phillips Co., Cincinatti, OH",11064,,(American),0,0,0,(),c. 1941,28.3,9.1 +Braquette Picture Frame,Nathan George Horwitt,2730,"(American, 1898–1990)",(American),1898,1990,92,(Male),Before 1941,11.4,1.8 +Vegetable Peeler,Unidentified Designer,6021,(American),(American),0,0,0,(),Before 1941,16.5,1.9 +Chaise Longue,Marcel Breuer,769,"(American, born Hungary. 1902–1981)",(American),1902,1981,79,(Male),1935-1936,147.3,61 +Upholstery fabric sample (no. 13304),Marli Ehrman,1694,"(American, born Germany. 1904–1982)",(American),1904,1982,78,(Female),1941,134.67,68.6 +Fabric Upholstery (no. 13304),Marli Ehrman,1694,"(American, born Germany. 1904–1982)",(American),1904,1982,78,(Female),c. 1940,132.0803,63.5 +Upholstery fabric sample (no. 13304),Marli Ehrman,1694,"(American, born Germany. 1904–1982)",(American),1904,1982,78,(Female),c. 1940,62.5476,42.2 +Upholstery fabric sample (No.13307),Marli Ehrman,1694,"(American, born Germany. 1904–1982)",(American),1904,1982,78,(Female),c. 1940,61,61 +Upholstery fabric sample (no.13308),Marli Ehrman,1694,"(American, born Germany. 1904–1982)",(American),1904,1982,78,(Female),c. 1940,58.4,57.1 +Fabric sample (no. 13309),Marli Ehrman,1694,"(American, born Germany. 1904–1982)",(American),1904,1982,78,(Female),1941,62.5,62.5 +Upholstery fabric,Marli Ehrman,1694,"(American, born Germany. 1904–1982)",(American),1904,1982,78,(Female),1941,80,66 +Upholstery fabric sample (no.13305),Marli Ehrman,1694,"(American, born Germany. 1904–1982)",(American),1904,1982,78,(Female),c. 1940,58.4,43.2 +Upholstery fabric sample (no. 13306),Marli Ehrman,1694,"(American, born Germany. 1904–1982)",(American),1904,1982,78,(Female),c. 1940,59,50.8 +Fabric (no. 13309),Marli Ehrman,1694,"(American, born Germany. 1904–1982)",(American),1904,1982,78,(Female),c. 1940,205.7,133.3 +Fabric (no. 13309),Marli Ehrman,1694,"(American, born Germany. 1904–1982)",(American),1904,1982,78,(Female),c. 1940,66,60.3 +Fabric (no. 13308),Marli Ehrman,1694,"(American, born Germany. 1904–1982)",(American),1904,1982,78,(Female),c. 1940,63.5,66 +Fabric (no. 13308),Marli Ehrman,1694,"(American, born Germany. 1904–1982)",(American),1904,1982,78,(Female),c. 1940,68.6,66 +Fabric (no. 13308),Marli Ehrman,1694,"(American, born Germany. 1904–1982)",(American),1904,1982,78,(Female),c. 1940,66,64.8 +Fabric (no. 13309),Marli Ehrman,1694,"(American, born Germany. 1904–1982)",(American),1904,1982,78,(Female),c. 1940,71.1,65.4 +Fabric (no. 13305),Marli Ehrman,1694,"(American, born Germany. 1904–1982)",(American),1904,1982,78,(Female),c. 1940,125.7,73.6601 +Fabric (no. 13305),Marli Ehrman,1694,"(American, born Germany. 1904–1982)",(American),1904,1982,78,(Female),c. 1940,213.4,127 +Printed Fabric,Virginia Nepodal,4262,"(American, 1914–2009)",(American),1914,2009,95,(Female),c. 1940,119.4,80 +Combination of Reeds,Noémi Raymond,36881,"(American, born France. 1889–1980)",(American),1889,1980,91,(Female),c.1940,203.2,121.9 +Blue Square,Noémi Raymond,36881,"(American, born France. 1889–1980)",(American),1889,1980,91,(Female),c. 1941,124.5,114.3 +"Strips, Trunks, Trees, Dots",Noémi Raymond,36881,"(American, born France. 1889–1980)",(American),1889,1980,91,(Female),late 1930s,198.1204,114.3 +"Blobs, Leaf",Noémi Raymond,36881,"(American, born France. 1889–1980)",(American),1889,1980,91,(Female),c. 1940,172.7,114.3 +"Squares, Blobs, Speckles",Noémi Raymond,36881,"(American, born France. 1889–1980)",(American),1889,1980,91,(Female),c. 1940,226,116.8 +Chinese Coins,Noémi Raymond,36881,"(American, born France. 1889–1980)",(American),1889,1980,91,(Female),c.1940,96.5,82.5 +Circles,Noémi Raymond,36881,"(American, born France. 1889–1980)",(American),1889,1980,91,(Female),c.1939-40,194.3104,111.1252 +"Combination of Strips, Reeds",Noémi Raymond,36881,"(American, born France. 1889–1980)",(American),1889,1980,91,(Female),c.1940,172.7,116.8 +Circles,Noémi Raymond,36881,"(American, born France. 1889–1980)",(American),1889,1980,91,(Female),c.1941,205.7404,119.4 +Woven Upholstery Fabric,Ulla af Ugglas,6003,"(Swedish, born 1916)",(Swedish),1916,0,0,(Female),c. 1936-41,92.7,33 \ No newline at end of file diff --git a/2_2_distributions/index.html b/2_2_distributions/index.html index e06389f..9d9ad40 100644 --- a/2_2_distributions/index.html +++ b/2_2_distributions/index.html @@ -1,14 +1,14 @@ - - - Interactive Data Visualization Tutorial - - - - -

Section 2 | Tutorial 2 | Distributions

-
- - - - \ No newline at end of file + + + + Interactive Data Visualization Tutorial + + + +

MoMA Artist Lifespan Plotted to the Dimensions of their Work

+
+ + + + diff --git a/2_2_distributions/main.js b/2_2_distributions/main.js index d270425..4909cf0 100644 --- a/2_2_distributions/main.js +++ b/2_2_distributions/main.js @@ -1,16 +1,123 @@ -/* CONSTANTS AND GLOBALS */ -// const width = , -// height = , -// margin = , -// radius = ; +t /* CONSTANTS AND GLOBALS */ +const width = window.innerWidth * 0.9, + height = window.innerHeight * 0.9, + margin = { top: 20, bottom: 60, left: 60, right: 40 }; + +/* TOOLTIP SETUP */ +const tooltip = d3.select("body").append("div") + .attr("class", "tooltip") + .style("position", "absolute") + .style("text-align", "center") + .style("width", "120px") + .style("height", "auto") + .style("padding", "2px") + .style("font", "12px sans-serif") + .style("background", "lightsteelblue") + .style("border", "1px solid #333") + .style("border-radius", "8px") + .style("pointer-events", "none") + .style("opacity", "0.9") + .style("display", "none"); /* LOAD DATA */ -d3.csv("../data/MoMA_distributions.csv", d3.autoType) - .then(data => { - console.log(data) - - /* SCALES */ - - /* HTML ELEMENTS */ - - }); \ No newline at end of file +d3.csv("MoMA_distributions.csv", d => ({ + // Parse strings to numbers where necessary + length: +d["Length (cm)"], + width: +d["Width (cm)"], + lifespan: +d["Artist Lifespan"], + artist: d.Artist, // You can add other data fields you need here +})).then(rawData => { + // Filter out records with no lifespan, lifespans over 100, and then reduce to one entry per artist + const data = Array.from( + rawData + .filter(d => d.lifespan > 0 && d.lifespan <= 100) + .reduce((acc, d) => { + acc.has(d.artist) || acc.set(d.artist, d); + return acc; + }, new Map()).values() + ); + + // Define the maximum length and width for the scales based on the filtered data + const maxDataLength = Math.min(300, d3.max(data, d => d.length)); + const maxDataWidth = Math.min(160, d3.max(data, d => d.width)); + + /* SCALES */ + // xScale - linear, clamp max at 300 or max data length + const xScale = d3.scaleLinear() + .domain([0, maxDataLength]) + .range([margin.left, width - margin.right]); + + // yScale - linear, clamp max at 160 or max data width + const yScale = d3.scaleLinear() + .domain([0, maxDataWidth]) + .range([height - margin.bottom, margin.top]); + + // Create a size scale for the artist lifespan, with a range to make differences more noticeable + const sizeScale = d3.scaleSqrt() + .domain(d3.extent(data, d => d.lifespan)) + .range([5, 40]); // Adjust the range for more pronounced circle sizes + + /* SVG SETUP */ + const svg = d3.select("#container").append("svg") + .attr("width", width) + .attr("height", height); + + /* AXES AND AXIS LABELS */ + const xAxis = d3.axisBottom(xScale); + svg.append("g") + .attr("transform", `translate(0,${height - margin.bottom})`) + .call(xAxis) + .append("text") + .attr("class", "axis-label") + .attr("x", width - margin.right) + .attr("y", 40) + .attr("text-anchor", "end") + .attr("fill", "black") + .text("Length (cm)"); + + const yAxis = d3.axisLeft(yScale); + svg.append("g") + .attr("transform", `translate(${margin.left},0)`) + .call(yAxis) + .append("text") + .attr("class", "axis-label") + .attr("transform", "rotate(-90)") + .attr("y", 15 - margin.left) + .attr("x", -margin.top) + .attr("dy", ".71em") + .attr("text-anchor", "end") + .attr("fill", "black") + .text("Width (cm)"); + + /* DRAW CIRCLES WITH TOOLTIPS */ + svg.selectAll("circle") + .data(data) + .enter() + .append("circle") + .attr("r", d => sizeScale(d.lifespan)) + .attr("cx", d => xScale(d.length)) + .attr("cy", d => yScale(d.width)) + .attr("fill", "red") + .attr("stroke", "#333") + .attr("stroke-width", "1px") + .attr("opacity", 0.8) + .on("mouseover", (event, d) => { + tooltip + .style("display", "block") + .style("left", `${event.pageX + 15}px`) + .style("top", `${event.pageY - 28}px`) + .html(`Artist: ${d.artist}
+ Lifespan: ${d.lifespan} years
+ Dimensions: ${d.length} x ${d.width} cm`); + d3.select(event.currentTarget) + .attr("stroke", "black") + .attr("stroke-width", "2px"); + }) + .on("mouseout", (event) => { + tooltip.style("display", "none"); + d3.select(event.currentTarget) + .attr("stroke", "#333") + .attr("stroke-width", "1px"); + }); + }); + \ No newline at end of file diff --git a/2_2_distributions/style.css b/2_2_distributions/style.css index 35a1801..d2806d2 100644 --- a/2_2_distributions/style.css +++ b/2_2_distributions/style.css @@ -1,19 +1,36 @@ body { - font-family: "Source Sans Pro", sans-serif; - font-size: 16px; + font-family: 'Helvetica Neue', sans-serif; + font-size: 12px; padding: 1em; } -h1 { - font-size: 3em; - margin: 0.25em 0; -} - h3 { - font-size: 2em; + font-size: 3.5em; margin: 0.25em 0; } -p { - font-size: 1em; +#container { + display: block; + width: 90vw; + height: 90vh; + margin: auto; + border: 1px solid #ccc; +} +.tooltip { + position: absolute; + text-align: center; + padding: 6px; + font: 12px sans-serif; + background: white; + border: 0px; + border-radius: 8px; + pointer-events: none; + opacity: 0.8; +} +/* Add this to your existing CSS */ +.heading { + font-family: "Franklin Gothic Medium", "Arial Narrow", Arial, sans-serif; + color: grey; + font-size: 18px; + margin: 10px 0; } \ No newline at end of file diff --git a/2_3_time_series/Energy_1990_2020.csv b/2_3_time_series/Energy_1990_2020.csv new file mode 100644 index 0000000..e96a89d --- /dev/null +++ b/2_3_time_series/Energy_1990_2020.csv @@ -0,0 +1,1043864 @@ +Year,State,Industry Sector Category,Residential +2020,NY,Total Electric Industry,18.36 +2019,NY,Total Electric Industry,17.94 +2018,NY,Total Electric Industry,18.52 +2017,NY,Total Electric Industry,18.03 +2016,NY,Total Electric Industry,17.58 +2015,NY,Total Electric Industry,18.54 +2014,NY,Total Electric Industry,20.07 +2013,NY,Total Electric Industry,18.79 +2012,NY,Total Electric Industry,17.62 +2011,NY,Total Electric Industry,18.26 +2010,NY,Total Electric Industry,18.74 +2009,NY,Total Electric Industry,17.50 +2008,NY,Total Electric Industry,18.31 +2007,NY,Total Electric Industry,17.10 +2006,NY,Total Electric Industry,16.89 +2005,NY,Total Electric Industry,15.72 +2004,NY,Total Electric Industry,14.54 +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, +,,, \ No newline at end of file diff --git a/2_3_time_series/index.html b/2_3_time_series/index.html index f964277..72c14c7 100644 --- a/2_3_time_series/index.html +++ b/2_3_time_series/index.html @@ -1,14 +1,15 @@ - - - Interactive Data Visualization Tutorial - - - - -

Section 2 | Tutorial 3 | Time Series

-
- - - - \ No newline at end of file + + + + Interactive Data Visualization Tutorial + + + + +

New York Residential Electricity Prices 2004 - 2020

+
+ + + + diff --git a/2_3_time_series/main.js b/2_3_time_series/main.js index bbed50f..198f10c 100644 --- a/2_3_time_series/main.js +++ b/2_3_time_series/main.js @@ -1,26 +1,80 @@ - /* CONSTANTS AND GLOBALS */ -// const width = , -// height = , -// margin = ; +/* CONSTANTS AND GLOBALS */ +const width = window.innerWidth * 0.7, + height = window.innerHeight * 0.7, + margin = { top: 20, bottom: 50, left: 60, right: 60 }; -/* LOAD DATA */ -d3.csv('[PATH_TO_YOUR_DATA]', d => { - return { - // year: new Date(+d.Year, 0, 1), - // country: d.Entity, - // population: +d.Population - } -}).then(data => { - console.log('data :>> ', data); +/* DATA */ +const data = [ + { year: new Date(2020, 0, 1), residentialPrice: 18.36 }, + { year: new Date(2019, 0, 1), residentialPrice: 17.94 }, + { year: new Date(2018, 0, 1), residentialPrice: 18.52 }, + { year: new Date(2017, 0, 1), residentialPrice: 18.03 }, + { year: new Date(2016, 0, 1), residentialPrice: 17.58 }, + { year: new Date(2015, 0, 1), residentialPrice: 18.54 }, + { year: new Date(2014, 0, 1), residentialPrice: 20.07 }, + { year: new Date(2013, 0, 1), residentialPrice: 18.79 }, + { year: new Date(2012, 0, 1), residentialPrice: 17.62 }, + { year: new Date(2011, 0, 1), residentialPrice: 18.26 }, + { year: new Date(2010, 0, 1), residentialPrice: 18.74 }, + { year: new Date(2009, 0, 1), residentialPrice: 17.50 }, + { year: new Date(2008, 0, 1), residentialPrice: 18.31 }, + { year: new Date(2007, 0, 1), residentialPrice: 17.10 }, + { year: new Date(2006, 0, 1), residentialPrice: 16.89 }, + { year: new Date(2005, 0, 1), residentialPrice: 15.72 }, + { year: new Date(2004, 0, 1), residentialPrice: 14.54 }, +]; - // SCALES +// SCALES +const xScale = d3.scaleTime() + .domain(d3.extent(data, d => d.year)) + .range([margin.left, width - margin.right]); - // CREATE SVG ELEMENT +const yScale = d3.scaleLinear() + .domain([0, d3.max(data, d => d.residentialPrice)]) + .range([height - margin.bottom, margin.top]); - // BUILD AND CALL AXES +// CREATE SVG ELEMENT +const svg = d3.select("#container") + .append("svg") + .attr("width", width) + .attr("height", height); - // LINE GENERATOR FUNCTION +// AXES +const xAxis = d3.axisBottom(xScale).ticks(data.length); +const yAxis = d3.axisLeft(yScale).tickFormat(d => `$${d.toFixed(2)}`); - // DRAW LINE +svg.append("g") + .attr("class", "axis xAxis") + .attr("transform", `translate(0,${height - margin.bottom})`) + .call(xAxis) + .append("text") + .attr("class", "axisLabel") + .attr("text-anchor", "end") + .attr("x", width - margin.right) + .attr("y", -10) + .text("Year"); -}); \ No newline at end of file +svg.append("g") + .attr("class", "axis yAxis") + .attr("transform", `translate(${margin.left},0)`) + .call(yAxis) + .append("text") + .attr("class", "axisLabel") + .attr("text-anchor", "end") + .attr("transform", "rotate(-90)") + .attr("y", 15) + .attr("x", -margin.top) + .text("Price ($)"); + +// AREA GENERATOR +const areaGen = d3.area() + .x(d => xScale(d.year)) + .y0(height - margin.bottom) + .y1(d => yScale(d.residentialPrice)); + +// DRAW AREA +svg.append("path") + .datum(data) // Use datum as we're only creating one area path + .attr("class", "area") + .attr("d", areaGen) + .attr("fill", "#90caf9"); // Using a placeholder color, you can change it to fit your design diff --git a/2_4_geographic/index.html b/2_4_geographic/index.html index 45b07ae..39160f0 100644 --- a/2_4_geographic/index.html +++ b/2_4_geographic/index.html @@ -6,7 +6,7 @@ -

Section 2 | Tutorial 4 | Geographic

+

MoMA's European Collection

diff --git a/2_4_geographic/main.js b/2_4_geographic/main.js index faaa87a..6f130f8 100644 --- a/2_4_geographic/main.js +++ b/2_4_geographic/main.js @@ -1,26 +1,57 @@ /* CONSTANTS AND GLOBALS */ -// const width = window.innerWidth * 0.9, -// height = window.innerHeight * 0.7, -// margin = { top: 20, bottom: 50, left: 60, right: 40 }; +const width = window.innerWidth * 0.9, + height = window.innerHeight * 0.9; -/** - * LOAD DATA - * Using a Promise.all([]), we can load more than one dataset at a time - * */ - Promise.all([ +/* LOAD DATA */ +Promise.all([ d3.json("../data/world.json"), - d3.csv("../data/MoMA_nationalities.csv", d3.autoType), -]).then(([geojson, nationalities]) => { - - // SPECIFY PROJECTION - + d3.csv("../data/MoMA_nationalities.csv", d3.autoType), +]).then(([geojson, momaData]) => { + // Adjust country names in the momaData array + momaData.forEach(d => { + if (d.Country === "French") d.Country = "France"; + if (d.Country === "Britain") d.Country = "United Kingdom"; + }); - // DEFINE PATH FUNCTION + // Filter geojson to only include specified European countries + const europeanCountriesGeoJSON = geojson.features.filter(feature => feature.properties.name && [ + "Germany", "United Kingdom", "France", "Italy", "Switzerland", "The Netherlands", "Slovenia", "Ukraine", + "Austria", "Spain", "Poland", "Sweden", "Denmark", "Belgium", "Czech Republic", "Israel", + "Finland", "Hungary", "Norway", "Croatia", "Ireland", "Turkey", "Scotland", "Romania", + "Serbia", "Iceland", "Greece", "Portugal", "Lebanon", "Slovakia", + "Bosnia", "Georgia", "Bulgaria", "Macedonia", "Palestine", "Lithuania", "Albania", "Luxembourg", "Latvia", // Add other countries as necessary + ].includes(feature.properties.name)); + // Define color scale (change to red) + const colorScale = d3.scaleSequentialSqrt(d3.interpolateReds) + .domain([0, d3.max(momaData, d => d.Count)]); - // APPEND GEOJSON PATH - + const svg = d3 + .select("#container") + .append("svg") + .attr("width", width) + .attr("height", height); - // APPEND DATA AS SHAPE + // SPECIFY PROJECTION + const projection = d3.geoMercator() + .fitSize([width, height], {type: "FeatureCollection", features: europeanCountriesGeoJSON}); + + // DEFINE PATH FUNCTION + const geoPathGen = d3.geoPath(projection); -}); \ No newline at end of file + // DRAW MAP + svg.selectAll(".country") + .data(europeanCountriesGeoJSON) + .join("path") + .attr("class", "country") + .attr("stroke", "black") + .attr("fill", d => { + const countryName = d.properties.name; + const countryData = momaData.find(cd => cd.Country === countryName); + return countryData ? colorScale(countryData.Count) : "#f0f0f0"; // Default color for countries with no data + }) + .attr("d", geoPathGen); +}) +.catch(error => { + console.error("Error loading or processing data:", error); +}); diff --git a/2_4_geographic/style.css b/2_4_geographic/style.css index 35a1801..9087c43 100644 --- a/2_4_geographic/style.css +++ b/2_4_geographic/style.css @@ -1,6 +1,5 @@ body { - font-family: "Source Sans Pro", sans-serif; - font-size: 16px; + font-family: 'Helvetica Neue', sans-serif; font-size: 16px; padding: 1em; } @@ -10,7 +9,7 @@ h1 { } h3 { - font-size: 2em; + font-size: 3em; margin: 0.25em 0; } diff --git a/Interactive-Data-Vis-Spring2024 b/Interactive-Data-Vis-Spring2024 new file mode 160000 index 0000000..9db6242 --- /dev/null +++ b/Interactive-Data-Vis-Spring2024 @@ -0,0 +1 @@ +Subproject commit 9db62426830beef257bbb1f9bbb370fb32dcee40 diff --git a/MoMA_template.png b/MoMA_template.png new file mode 100644 index 0000000..9006fac Binary files /dev/null and b/MoMA_template.png differ diff --git a/Places.png b/Places.png new file mode 100644 index 0000000..1707251 Binary files /dev/null and b/Places.png differ diff --git a/Portrait_2.png b/Portrait_2.png new file mode 100644 index 0000000..b5ff8b3 Binary files /dev/null and b/Portrait_2.png differ diff --git a/Portrait_for_mainscreen .pdf b/Portrait_for_mainscreen .pdf new file mode 100644 index 0000000..cd660fa Binary files /dev/null and b/Portrait_for_mainscreen .pdf differ diff --git "a/Screenshot 2024-05-01 at 3.56.22\342\200\257PM.png" "b/Screenshot 2024-05-01 at 3.56.22\342\200\257PM.png" new file mode 100644 index 0000000..b744c0a Binary files /dev/null and "b/Screenshot 2024-05-01 at 3.56.22\342\200\257PM.png" differ diff --git a/countries-110m.json b/countries-110m.json new file mode 100644 index 0000000..055d19f --- /dev/null +++ b/countries-110m.json @@ -0,0 +1 @@ +{"type":"Topology","objects":{"countries":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","arcs":[[[0]],[[1]]],"id":"242","properties":{"name":"Fiji"}},{"type":"Polygon","arcs":[[2,3,4,5,6,7,8,9,10]],"id":"834","properties":{"name":"Tanzania"}},{"type":"Polygon","arcs":[[11,12,13,14]],"id":"732","properties":{"name":"W. Sahara"}},{"type":"MultiPolygon","arcs":[[[15,16,17,18]],[[19]],[[20]],[[21]],[[22]],[[23]],[[24]],[[25]],[[26]],[[27]],[[28]],[[29]],[[30]],[[31]],[[32]],[[33]],[[34]],[[35]],[[36]],[[37]],[[38]],[[39]],[[40]],[[41]],[[42]],[[43]],[[44]],[[45]],[[46]],[[47]]],"id":"124","properties":{"name":"Canada"}},{"type":"MultiPolygon","arcs":[[[-19,48,49,50]],[[51]],[[52]],[[53]],[[54]],[[55]],[[56]],[[57]],[[-17,58]],[[59]]],"id":"840","properties":{"name":"United States of America"}},{"type":"Polygon","arcs":[[60,61,62,63,64,65]],"id":"398","properties":{"name":"Kazakhstan"}},{"type":"Polygon","arcs":[[-63,66,67,68,69]],"id":"860","properties":{"name":"Uzbekistan"}},{"type":"MultiPolygon","arcs":[[[70,71]],[[72]],[[73]],[[74]]],"id":"598","properties":{"name":"Papua New Guinea"}},{"type":"MultiPolygon","arcs":[[[-72,75]],[[76,77]],[[78]],[[79,80]],[[81]],[[82]],[[83]],[[84]],[[85]],[[86]],[[87]],[[88]],[[89]]],"id":"360","properties":{"name":"Indonesia"}},{"type":"MultiPolygon","arcs":[[[90,91]],[[92,93,94,95,96,97]]],"id":"032","properties":{"name":"Argentina"}},{"type":"MultiPolygon","arcs":[[[-92,98]],[[99,-95,100,101]]],"id":"152","properties":{"name":"Chile"}},{"type":"Polygon","arcs":[[-8,102,103,104,105,106,107,108,109,110,111]],"id":"180","properties":{"name":"Dem. Rep. Congo"}},{"type":"Polygon","arcs":[[112,113,114,115]],"id":"706","properties":{"name":"Somalia"}},{"type":"Polygon","arcs":[[-3,116,117,118,-113,119]],"id":"404","properties":{"name":"Kenya"}},{"type":"Polygon","arcs":[[120,121,122,123,124,125,126,127]],"id":"729","properties":{"name":"Sudan"}},{"type":"Polygon","arcs":[[-122,128,129,130,131]],"id":"148","properties":{"name":"Chad"}},{"type":"Polygon","arcs":[[132,133]],"id":"332","properties":{"name":"Haiti"}},{"type":"Polygon","arcs":[[-133,134]],"id":"214","properties":{"name":"Dominican Rep."}},{"type":"MultiPolygon","arcs":[[[135]],[[136]],[[137]],[[138]],[[139]],[[140]],[[141,142,143]],[[144]],[[145]],[[146,147,148,149,-66,150,151,152,153,154,155,156,157,158,159,160,161]],[[162]],[[163,164]]],"id":"643","properties":{"name":"Russia"}},{"type":"MultiPolygon","arcs":[[[165]],[[166]],[[167]]],"id":"044","properties":{"name":"Bahamas"}},{"type":"Polygon","arcs":[[168]],"id":"238","properties":{"name":"Falkland Is."}},{"type":"MultiPolygon","arcs":[[[169]],[[-161,170,171,172]],[[173]],[[174]]],"id":"578","properties":{"name":"Norway"}},{"type":"Polygon","arcs":[[175]],"id":"304","properties":{"name":"Greenland"}},{"type":"Polygon","arcs":[[176]],"id":"260","properties":{"name":"Fr. S. Antarctic Lands"}},{"type":"Polygon","arcs":[[177,-77]],"id":"626","properties":{"name":"Timor-Leste"}},{"type":"Polygon","arcs":[[178,179,180,181,182,183,184],[185]],"id":"710","properties":{"name":"South Africa"}},{"type":"Polygon","arcs":[[-186]],"id":"426","properties":{"name":"Lesotho"}},{"type":"Polygon","arcs":[[-50,186,187,188,189]],"id":"484","properties":{"name":"Mexico"}},{"type":"Polygon","arcs":[[190,191,-93]],"id":"858","properties":{"name":"Uruguay"}},{"type":"Polygon","arcs":[[-191,-98,192,193,194,195,196,197,198,199,200]],"id":"076","properties":{"name":"Brazil"}},{"type":"Polygon","arcs":[[-194,201,-96,-100,202]],"id":"068","properties":{"name":"Bolivia"}},{"type":"Polygon","arcs":[[-195,-203,-102,203,204,205]],"id":"604","properties":{"name":"Peru"}},{"type":"Polygon","arcs":[[-196,-206,206,207,208,209,210]],"id":"170","properties":{"name":"Colombia"}},{"type":"Polygon","arcs":[[-209,211,212,213]],"id":"591","properties":{"name":"Panama"}},{"type":"Polygon","arcs":[[-213,214,215,216]],"id":"188","properties":{"name":"Costa Rica"}},{"type":"Polygon","arcs":[[-216,217,218,219]],"id":"558","properties":{"name":"Nicaragua"}},{"type":"Polygon","arcs":[[-219,220,221,222,223]],"id":"340","properties":{"name":"Honduras"}},{"type":"Polygon","arcs":[[-222,224,225]],"id":"222","properties":{"name":"El Salvador"}},{"type":"Polygon","arcs":[[-189,226,227,-223,-226,228]],"id":"320","properties":{"name":"Guatemala"}},{"type":"Polygon","arcs":[[-188,229,-227]],"id":"084","properties":{"name":"Belize"}},{"type":"Polygon","arcs":[[-197,-211,230,231]],"id":"862","properties":{"name":"Venezuela"}},{"type":"Polygon","arcs":[[-198,-232,232,233]],"id":"328","properties":{"name":"Guyana"}},{"type":"Polygon","arcs":[[-199,-234,234,235]],"id":"740","properties":{"name":"Suriname"}},{"type":"MultiPolygon","arcs":[[[-200,-236,236]],[[237,238,239,240,241,242,243,244]],[[245]]],"id":"250","properties":{"name":"France"}},{"type":"Polygon","arcs":[[-205,246,-207]],"id":"218","properties":{"name":"Ecuador"}},{"type":"Polygon","arcs":[[247]],"id":"630","properties":{"name":"Puerto Rico"}},{"type":"Polygon","arcs":[[248]],"id":"388","properties":{"name":"Jamaica"}},{"type":"Polygon","arcs":[[249]],"id":"192","properties":{"name":"Cuba"}},{"type":"Polygon","arcs":[[-181,250,251,252]],"id":"716","properties":{"name":"Zimbabwe"}},{"type":"Polygon","arcs":[[-180,253,254,-251]],"id":"072","properties":{"name":"Botswana"}},{"type":"Polygon","arcs":[[-179,255,256,257,-254]],"id":"516","properties":{"name":"Namibia"}},{"type":"Polygon","arcs":[[258,259,260,261,262,263,264]],"id":"686","properties":{"name":"Senegal"}},{"type":"Polygon","arcs":[[-261,265,266,267,268,269,270]],"id":"466","properties":{"name":"Mali"}},{"type":"Polygon","arcs":[[-13,271,-266,-260,272]],"id":"478","properties":{"name":"Mauritania"}},{"type":"Polygon","arcs":[[273,274,275,276,277]],"id":"204","properties":{"name":"Benin"}},{"type":"Polygon","arcs":[[-131,278,279,-277,280,-268,281,282]],"id":"562","properties":{"name":"Niger"}},{"type":"Polygon","arcs":[[-278,-280,283,284]],"id":"566","properties":{"name":"Nigeria"}},{"type":"Polygon","arcs":[[-130,285,286,287,288,289,-284,-279]],"id":"120","properties":{"name":"Cameroon"}},{"type":"Polygon","arcs":[[-275,290,291,292]],"id":"768","properties":{"name":"Togo"}},{"type":"Polygon","arcs":[[-292,293,294,295]],"id":"288","properties":{"name":"Ghana"}},{"type":"Polygon","arcs":[[-270,296,-295,297,298,299]],"id":"384","properties":{"name":"Côte d'Ivoire"}},{"type":"Polygon","arcs":[[-262,-271,-300,300,301,302,303]],"id":"324","properties":{"name":"Guinea"}},{"type":"Polygon","arcs":[[-263,-304,304]],"id":"624","properties":{"name":"Guinea-Bissau"}},{"type":"Polygon","arcs":[[-299,305,306,-301]],"id":"430","properties":{"name":"Liberia"}},{"type":"Polygon","arcs":[[-302,-307,307]],"id":"694","properties":{"name":"Sierra Leone"}},{"type":"Polygon","arcs":[[-269,-281,-276,-293,-296,-297]],"id":"854","properties":{"name":"Burkina Faso"}},{"type":"Polygon","arcs":[[-108,308,-286,-129,-121,309]],"id":"140","properties":{"name":"Central African Rep."}},{"type":"Polygon","arcs":[[-107,310,311,312,-287,-309]],"id":"178","properties":{"name":"Congo"}},{"type":"Polygon","arcs":[[-288,-313,313,314]],"id":"266","properties":{"name":"Gabon"}},{"type":"Polygon","arcs":[[-289,-315,315]],"id":"226","properties":{"name":"Eq. Guinea"}},{"type":"Polygon","arcs":[[-7,316,317,-252,-255,-258,318,-103]],"id":"894","properties":{"name":"Zambia"}},{"type":"Polygon","arcs":[[-6,319,-317]],"id":"454","properties":{"name":"Malawi"}},{"type":"Polygon","arcs":[[-5,320,-184,321,-182,-253,-318,-320]],"id":"508","properties":{"name":"Mozambique"}},{"type":"Polygon","arcs":[[-183,-322]],"id":"748","properties":{"name":"eSwatini"}},{"type":"MultiPolygon","arcs":[[[-106,322,-311]],[[-104,-319,-257,323]]],"id":"024","properties":{"name":"Angola"}},{"type":"Polygon","arcs":[[-9,-112,324]],"id":"108","properties":{"name":"Burundi"}},{"type":"Polygon","arcs":[[325,326,327,328,329,330,331]],"id":"376","properties":{"name":"Israel"}},{"type":"Polygon","arcs":[[-331,332,333]],"id":"422","properties":{"name":"Lebanon"}},{"type":"Polygon","arcs":[[334]],"id":"450","properties":{"name":"Madagascar"}},{"type":"Polygon","arcs":[[-327,335]],"id":"275","properties":{"name":"Palestine"}},{"type":"Polygon","arcs":[[-265,336]],"id":"270","properties":{"name":"Gambia"}},{"type":"Polygon","arcs":[[337,338,339]],"id":"788","properties":{"name":"Tunisia"}},{"type":"Polygon","arcs":[[-12,340,341,-338,342,-282,-267,-272]],"id":"012","properties":{"name":"Algeria"}},{"type":"Polygon","arcs":[[-326,343,344,345,346,-328,-336]],"id":"400","properties":{"name":"Jordan"}},{"type":"Polygon","arcs":[[347,348,349,350,351]],"id":"784","properties":{"name":"United Arab Emirates"}},{"type":"Polygon","arcs":[[352,353]],"id":"634","properties":{"name":"Qatar"}},{"type":"Polygon","arcs":[[354,355,356]],"id":"414","properties":{"name":"Kuwait"}},{"type":"Polygon","arcs":[[-345,357,358,359,360,-357,361]],"id":"368","properties":{"name":"Iraq"}},{"type":"MultiPolygon","arcs":[[[-351,362,363,364]],[[-349,365]]],"id":"512","properties":{"name":"Oman"}},{"type":"MultiPolygon","arcs":[[[366]],[[367]]],"id":"548","properties":{"name":"Vanuatu"}},{"type":"Polygon","arcs":[[368,369,370,371]],"id":"116","properties":{"name":"Cambodia"}},{"type":"Polygon","arcs":[[-369,372,373,374,375,376]],"id":"764","properties":{"name":"Thailand"}},{"type":"Polygon","arcs":[[-370,-377,377,378,379]],"id":"418","properties":{"name":"Laos"}},{"type":"Polygon","arcs":[[-376,380,381,382,383,-378]],"id":"104","properties":{"name":"Myanmar"}},{"type":"Polygon","arcs":[[-371,-380,384,385]],"id":"704","properties":{"name":"Vietnam"}},{"type":"MultiPolygon","arcs":[[[386,386,386]],[[-147,387,388,389,390]]],"id":"408","properties":{"name":"North Korea"}},{"type":"Polygon","arcs":[[-389,391]],"id":"410","properties":{"name":"South Korea"}},{"type":"Polygon","arcs":[[-149,392]],"id":"496","properties":{"name":"Mongolia"}},{"type":"Polygon","arcs":[[-383,393,394,395,396,397,398,399,400]],"id":"356","properties":{"name":"India"}},{"type":"Polygon","arcs":[[-382,401,-394]],"id":"050","properties":{"name":"Bangladesh"}},{"type":"Polygon","arcs":[[-400,402]],"id":"064","properties":{"name":"Bhutan"}},{"type":"Polygon","arcs":[[-398,403]],"id":"524","properties":{"name":"Nepal"}},{"type":"Polygon","arcs":[[-396,404,405,406,407]],"id":"586","properties":{"name":"Pakistan"}},{"type":"Polygon","arcs":[[-69,408,409,-407,410,411]],"id":"004","properties":{"name":"Afghanistan"}},{"type":"Polygon","arcs":[[-68,412,413,-409]],"id":"762","properties":{"name":"Tajikistan"}},{"type":"Polygon","arcs":[[-62,414,-413,-67]],"id":"417","properties":{"name":"Kyrgyzstan"}},{"type":"Polygon","arcs":[[-64,-70,-412,415,416]],"id":"795","properties":{"name":"Turkmenistan"}},{"type":"Polygon","arcs":[[-360,417,418,419,420,421,-416,-411,-406,422]],"id":"364","properties":{"name":"Iran"}},{"type":"Polygon","arcs":[[-332,-334,423,424,-358,-344]],"id":"760","properties":{"name":"Syria"}},{"type":"Polygon","arcs":[[-420,425,426,427,428]],"id":"051","properties":{"name":"Armenia"}},{"type":"Polygon","arcs":[[-172,429,430]],"id":"752","properties":{"name":"Sweden"}},{"type":"Polygon","arcs":[[-156,431,432,433,434]],"id":"112","properties":{"name":"Belarus"}},{"type":"Polygon","arcs":[[-155,435,-164,436,437,438,439,440,441,442,-432]],"id":"804","properties":{"name":"Ukraine"}},{"type":"Polygon","arcs":[[-433,-443,443,444,445,446,-142,447]],"id":"616","properties":{"name":"Poland"}},{"type":"Polygon","arcs":[[448,449,450,451,452,453,454]],"id":"040","properties":{"name":"Austria"}},{"type":"Polygon","arcs":[[-441,455,456,457,458,-449,459]],"id":"348","properties":{"name":"Hungary"}},{"type":"Polygon","arcs":[[-439,460]],"id":"498","properties":{"name":"Moldova"}},{"type":"Polygon","arcs":[[-438,461,462,463,-456,-440,-461]],"id":"642","properties":{"name":"Romania"}},{"type":"Polygon","arcs":[[-434,-448,-144,464,465]],"id":"440","properties":{"name":"Lithuania"}},{"type":"Polygon","arcs":[[-157,-435,-466,466,467]],"id":"428","properties":{"name":"Latvia"}},{"type":"Polygon","arcs":[[-158,-468,468]],"id":"233","properties":{"name":"Estonia"}},{"type":"Polygon","arcs":[[-446,469,-453,470,-238,471,472,473,474,475,476]],"id":"276","properties":{"name":"Germany"}},{"type":"Polygon","arcs":[[-463,477,478,479,480,481]],"id":"100","properties":{"name":"Bulgaria"}},{"type":"MultiPolygon","arcs":[[[482]],[[-480,483,484,485,486]]],"id":"300","properties":{"name":"Greece"}},{"type":"MultiPolygon","arcs":[[[-359,-425,487,488,-427,-418]],[[-479,489,-484]]],"id":"792","properties":{"name":"Turkey"}},{"type":"Polygon","arcs":[[-486,490,491,492,493]],"id":"008","properties":{"name":"Albania"}},{"type":"Polygon","arcs":[[-458,494,495,496,497,498]],"id":"191","properties":{"name":"Croatia"}},{"type":"Polygon","arcs":[[-452,499,-239,-471]],"id":"756","properties":{"name":"Switzerland"}},{"type":"Polygon","arcs":[[-472,-245,500]],"id":"442","properties":{"name":"Luxembourg"}},{"type":"Polygon","arcs":[[-473,-501,-244,501,502]],"id":"056","properties":{"name":"Belgium"}},{"type":"Polygon","arcs":[[-474,-503,503]],"id":"528","properties":{"name":"Netherlands"}},{"type":"Polygon","arcs":[[504,505]],"id":"620","properties":{"name":"Portugal"}},{"type":"Polygon","arcs":[[-505,506,-242,507]],"id":"724","properties":{"name":"Spain"}},{"type":"Polygon","arcs":[[508,509]],"id":"372","properties":{"name":"Ireland"}},{"type":"Polygon","arcs":[[510]],"id":"540","properties":{"name":"New Caledonia"}},{"type":"MultiPolygon","arcs":[[[511]],[[512]],[[513]],[[514]],[[515]]],"id":"090","properties":{"name":"Solomon Is."}},{"type":"MultiPolygon","arcs":[[[516]],[[517]]],"id":"554","properties":{"name":"New Zealand"}},{"type":"MultiPolygon","arcs":[[[518]],[[519]]],"id":"036","properties":{"name":"Australia"}},{"type":"Polygon","arcs":[[520]],"id":"144","properties":{"name":"Sri Lanka"}},{"type":"MultiPolygon","arcs":[[[521]],[[-61,-150,-393,-148,-391,522,-385,-379,-384,-401,-403,-399,-404,-397,-408,-410,-414,-415]]],"id":"156","properties":{"name":"China"}},{"type":"Polygon","arcs":[[523]],"id":"158","properties":{"name":"Taiwan"}},{"type":"MultiPolygon","arcs":[[[-451,524,525,-240,-500]],[[526]],[[527]]],"id":"380","properties":{"name":"Italy"}},{"type":"MultiPolygon","arcs":[[[-476,528]],[[529]]],"id":"208","properties":{"name":"Denmark"}},{"type":"MultiPolygon","arcs":[[[-510,530]],[[531]]],"id":"826","properties":{"name":"United Kingdom"}},{"type":"Polygon","arcs":[[532]],"id":"352","properties":{"name":"Iceland"}},{"type":"MultiPolygon","arcs":[[[-152,533,-421,-429,534]],[[-419,-426]]],"id":"031","properties":{"name":"Azerbaijan"}},{"type":"Polygon","arcs":[[-153,-535,-428,-489,535]],"id":"268","properties":{"name":"Georgia"}},{"type":"MultiPolygon","arcs":[[[536]],[[537]],[[538]],[[539]],[[540]],[[541]],[[542]]],"id":"608","properties":{"name":"Philippines"}},{"type":"MultiPolygon","arcs":[[[-374,543]],[[-81,544,545,546]]],"id":"458","properties":{"name":"Malaysia"}},{"type":"Polygon","arcs":[[-546,547]],"id":"096","properties":{"name":"Brunei"}},{"type":"Polygon","arcs":[[-450,-459,-499,548,-525]],"id":"705","properties":{"name":"Slovenia"}},{"type":"Polygon","arcs":[[-160,549,-430,-171]],"id":"246","properties":{"name":"Finland"}},{"type":"Polygon","arcs":[[-442,-460,-455,550,-444]],"id":"703","properties":{"name":"Slovakia"}},{"type":"Polygon","arcs":[[-445,-551,-454,-470]],"id":"203","properties":{"name":"Czechia"}},{"type":"Polygon","arcs":[[-126,551,552,553]],"id":"232","properties":{"name":"Eritrea"}},{"type":"MultiPolygon","arcs":[[[554]],[[555]],[[556]]],"id":"392","properties":{"name":"Japan"}},{"type":"Polygon","arcs":[[-193,-97,-202]],"id":"600","properties":{"name":"Paraguay"}},{"type":"Polygon","arcs":[[-364,557,558]],"id":"887","properties":{"name":"Yemen"}},{"type":"Polygon","arcs":[[-346,-362,-356,559,-354,560,-352,-365,-559,561]],"id":"682","properties":{"name":"Saudi Arabia"}},{"type":"MultiPolygon","arcs":[[[562]],[[563]],[[564]],[[565]],[[566]],[[567]],[[568]],[[569]]],"id":"010","properties":{"name":"Antarctica"}},{"type":"Polygon","arcs":[[570,571]],"properties":{"name":"N. Cyprus"}},{"type":"Polygon","arcs":[[-572,572]],"id":"196","properties":{"name":"Cyprus"}},{"type":"Polygon","arcs":[[-341,-15,573]],"id":"504","properties":{"name":"Morocco"}},{"type":"Polygon","arcs":[[-124,574,575,-329,576]],"id":"818","properties":{"name":"Egypt"}},{"type":"Polygon","arcs":[[-123,-132,-283,-343,-340,577,-575]],"id":"434","properties":{"name":"Libya"}},{"type":"Polygon","arcs":[[-114,-119,578,-127,-554,579,580]],"id":"231","properties":{"name":"Ethiopia"}},{"type":"Polygon","arcs":[[-553,581,582,-580]],"id":"262","properties":{"name":"Djibouti"}},{"type":"Polygon","arcs":[[-115,-581,-583,583]],"properties":{"name":"Somaliland"}},{"type":"Polygon","arcs":[[-11,584,-110,585,-117]],"id":"800","properties":{"name":"Uganda"}},{"type":"Polygon","arcs":[[-10,-325,-111,-585]],"id":"646","properties":{"name":"Rwanda"}},{"type":"Polygon","arcs":[[-496,586,587]],"id":"070","properties":{"name":"Bosnia and Herz."}},{"type":"Polygon","arcs":[[-481,-487,-494,588,589]],"id":"807","properties":{"name":"Macedonia"}},{"type":"Polygon","arcs":[[-457,-464,-482,-590,590,591,-587,-495]],"id":"688","properties":{"name":"Serbia"}},{"type":"Polygon","arcs":[[-492,592,-497,-588,-592,593]],"id":"499","properties":{"name":"Montenegro"}},{"type":"Polygon","arcs":[[-493,-594,-591,-589]],"properties":{"name":"Kosovo"}},{"type":"Polygon","arcs":[[594]],"id":"780","properties":{"name":"Trinidad and Tobago"}},{"type":"Polygon","arcs":[[-109,-310,-128,-579,-118,-586]],"id":"728","properties":{"name":"S. Sudan"}}]},"land":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","arcs":[[[0]],[[1]],[[3,320,184,255,323,104,322,311,313,315,289,284,273,290,293,297,305,307,302,304,263,336,258,272,13,573,341,338,577,575,329,332,423,487,535,153,435,164,436,461,477,489,484,490,592,497,548,525,240,507,505,506,242,501,503,474,528,476,446,142,464,466,468,158,549,430,172,161,387,391,389,522,385,371,372,543,374,380,401,394,404,422,360,354,559,352,560,347,365,349,362,557,561,346,576,124,551,581,583,115,119],[421,416,64,150,533]],[[17,48,186,229,227,223,219,216,213,209,230,232,234,236,200,191,93,100,203,246,207,211,214,217,220,224,228,189,50,15,58]],[[19]],[[20]],[[21]],[[22]],[[23]],[[24]],[[25]],[[26]],[[27]],[[28]],[[29]],[[30]],[[31]],[[32]],[[33]],[[34]],[[35]],[[36]],[[37]],[[38]],[[39]],[[40]],[[41]],[[42]],[[43]],[[44]],[[45]],[[46]],[[47]],[[51]],[[52]],[[53]],[[54]],[[55]],[[56]],[[57]],[[59]],[[70,75]],[[72]],[[73]],[[74]],[[77,177]],[[78]],[[546,79,544,547]],[[81]],[[82]],[[83]],[[84]],[[85]],[[86]],[[87]],[[88]],[[89]],[[90,98]],[[133,134]],[[135]],[[136]],[[137]],[[138]],[[139]],[[140]],[[144]],[[145]],[[162]],[[165]],[[166]],[[167]],[[168]],[[169]],[[173]],[[174]],[[175]],[[176]],[[245]],[[247]],[[248]],[[249]],[[334]],[[366]],[[367]],[[482]],[[508,530]],[[510]],[[511]],[[512]],[[513]],[[514]],[[515]],[[516]],[[517]],[[518]],[[519]],[[520]],[[521]],[[523]],[[526]],[[527]],[[529]],[[531]],[[532]],[[536]],[[537]],[[538]],[[539]],[[540]],[[541]],[[542]],[[554]],[[555]],[[556]],[[562]],[[563]],[[564]],[[565]],[[566]],[[567]],[[568]],[[569]],[[570,572]],[[594]]]}]}},"arcs":[[[99478,40237],[69,98],[96,-171],[-46,-308],[-172,-81],[-153,73],[-27,260],[107,203],[126,-74]],[[0,41087],[57,27],[-34,-284],[-23,-32],[99822,-145],[-177,-124],[-36,220],[139,121],[88,33],[163,184],[-99999,0]],[[59417,50018],[47,-65],[1007,-1203],[19,-343],[399,-590]],[[60889,47817],[-128,-728],[16,-335],[178,-216],[8,-153],[-76,-357],[16,-180],[-18,-282],[97,-370],[115,-583],[101,-129]],[[61198,44484],[-221,-342],[-303,-230],[-167,10],[-99,-177],[-193,-16],[-73,-74],[-334,166],[-209,-48]],[[59599,43773],[-77,804],[-95,275],[-55,164],[-273,110]],[[59099,45126],[-157,177],[-177,100],[-111,99],[-116,150]],[[58538,45652],[-150,745],[-161,330],[-55,343],[27,307],[-50,544]],[[58149,47921],[115,28],[101,214],[108,308],[69,124],[-3,192],[-60,134],[-16,233]],[[58463,49154],[80,74],[16,348],[-110,333]],[[58449,49909],[98,71],[304,-7],[566,45]],[[47592,66920],[1,-40],[-6,-114]],[[47587,66766],[-1,-895],[-911,31],[9,-1512],[-261,-53],[-68,-304],[53,-853],[-1088,4],[-60,-197]],[[45260,62987],[12,249]],[[45272,63236],[5,-1],[625,48],[33,213],[114,265],[92,816],[386,637],[131,745],[86,44],[91,460],[234,63],[100,-76],[126,0],[90,134],[172,19],[-7,317],[42,0]],[[15878,79530],[-38,1],[-537,581],[-199,255],[-503,244],[-155,523],[40,363],[-356,252],[-48,476],[-336,429],[-6,304]],[[13740,82958],[154,285],[-7,373],[-473,376],[-284,674],[-173,424],[-255,266],[-187,242],[-147,306],[-279,-192],[-270,-330],[-247,388],[-194,259],[-271,164],[-273,17],[1,3364],[2,2193]],[[10837,91767],[518,-142],[438,-285],[289,-54],[244,247],[336,184],[413,-72],[416,259],[455,148],[191,-245],[207,138],[62,278],[192,-63],[470,-530],[369,401],[38,-449],[341,97],[105,173],[337,-34],[424,-248],[650,-217],[383,-100],[272,38],[374,-300],[-390,-293],[502,-127],[750,70],[236,103],[296,-354],[302,299],[-283,251],[179,202],[338,27],[223,59],[224,-141],[279,-321],[310,47],[491,-266],[431,94],[405,-14],[-32,367],[247,103],[431,-200],[-2,-559],[177,471],[223,-16],[126,594],[-298,364],[-324,239],[22,653],[329,429],[366,-95],[281,-261],[378,-666],[-247,-290],[517,-120],[-1,-604],[371,463],[332,-380],[-83,-438],[269,-399],[290,427],[202,510],[16,649],[394,-46],[411,-87],[373,-293],[17,-293],[-207,-315],[196,-316],[-36,-288],[-544,-413],[-386,-91],[-287,178],[-83,-297],[-268,-498],[-81,-259],[-322,-399],[-397,-39],[-220,-250],[-18,-384],[-323,-74],[-340,-479],[-301,-665],[-108,-466],[-16,-686],[409,-99],[125,-553],[130,-448],[388,117],[517,-256],[277,-225],[199,-279],[348,-163],[294,-248],[459,-34],[302,-58],[-45,-511],[86,-594],[201,-661],[414,-561],[214,192],[150,607],[-145,934],[-196,311],[445,276],[314,415],[154,411],[-23,395],[-188,502],[-338,445],[328,619],[-121,535],[-93,922],[194,137],[476,-161],[286,-57],[230,155],[258,-200],[342,-343],[85,-229],[495,-45],[-8,-496],[92,-747],[254,-92],[201,-348],[402,328],[266,652],[184,274],[216,-527],[362,-754],[307,-709],[-112,-371],[370,-333],[250,-338],[442,-152],[179,-189],[110,-500],[216,-78],[112,-223],[20,-664],[-202,-222],[-199,-207],[-458,-210],[-349,-486],[-470,-96],[-594,125],[-417,4],[-287,-41],[-233,-424],[-354,-262],[-401,-782],[-320,-545],[236,97],[446,776],[583,493],[415,58],[246,-289],[-262,-397],[88,-637],[91,-446],[361,-295],[459,86],[278,664],[19,-429],[180,-214],[-344,-387],[-615,-351],[-276,-239],[-310,-426],[-211,44],[-11,500],[483,488],[-445,-19],[-309,-72]],[[31350,77248],[-181,334],[0,805],[-123,171],[-187,-100],[-92,155],[-212,-446],[-84,-460],[-99,-269],[-118,-91],[-89,-30],[-28,-146],[-512,0],[-422,-4],[-125,-109],[-294,-425],[-34,-46],[-89,-231],[-255,1],[-273,-3],[-125,-93],[44,-116],[25,-181],[-5,-60],[-363,-293],[-286,-93],[-323,-316],[-70,0],[-94,93],[-31,85],[6,61],[61,207],[131,325],[81,349],[-56,514],[-59,536],[-290,277],[35,105],[-41,73],[-76,0],[-56,93],[-14,140],[-54,-61],[-75,18],[17,59],[-65,58],[-27,155],[-216,189],[-224,197],[-272,229],[-261,214],[-248,-167],[-91,-6],[-342,154],[-225,-77],[-269,183],[-284,94],[-194,36],[-86,100],[-49,325],[-94,-3],[-1,-227],[-575,0],[-951,0],[-944,0],[-833,0],[-834,0],[-819,0],[-847,0],[-273,0],[-824,0],[-789,0]],[[26668,87478],[207,273],[381,-6],[-6,-114],[-325,-326],[-196,13],[-61,160]],[[27840,93593],[-306,313],[12,213],[133,39],[636,-63],[479,-325],[25,-163],[-296,17],[-299,13],[-304,-80],[-80,36]],[[27690,87261],[107,177],[114,-13],[70,-121],[-108,-310],[-123,50],[-73,176],[13,41]],[[23996,94879],[-151,-229],[-403,44],[-337,155],[148,266],[399,159],[243,-208],[101,-187]],[[23933,96380],[-126,-17],[-521,38],[-74,165],[559,-9],[195,-109],[-33,-68]],[[23124,97116],[332,-205],[-76,-214],[-411,-122],[-226,138],[-119,221],[-22,245],[360,-24],[162,-39]],[[25514,94532],[-449,73],[-738,190],[-96,325],[-34,293],[-279,258],[-574,72],[-322,183],[104,242],[573,-37],[308,-190],[547,1],[240,-194],[-64,-222],[319,-134],[177,-140],[374,-26],[406,-50],[441,128],[566,51],[451,-42],[298,-223],[62,-244],[-174,-157],[-414,-127],[-355,72],[-797,-91],[-570,-11]],[[19093,96754],[392,-92],[-93,-177],[-518,-170],[-411,191],[224,188],[406,60]],[[19177,97139],[361,-120],[-339,-115],[-461,1],[5,84],[285,177],[149,-27]],[[34555,80899],[-148,-372],[-184,-517],[181,199],[187,-126],[-98,-206],[247,-162],[128,144],[277,-182],[-86,-433],[194,101],[36,-313],[86,-367],[-117,-520],[-125,-22],[-183,111],[60,484],[-77,75],[-322,-513],[-166,21],[196,277],[-267,144],[-298,-35],[-539,18],[-43,175],[173,208],[-121,160],[234,356],[287,941],[172,336],[241,204],[129,-26],[-54,-160]],[[26699,89048],[304,-203],[318,-184],[25,-281],[204,46],[199,-196],[-247,-186],[-432,142],[-156,266],[-275,-314],[-396,-306],[-95,346],[-377,-57],[242,292],[35,465],[95,542],[201,-49],[51,-259],[143,91],[161,-155]],[[28119,93327],[263,235],[616,-299],[383,-282],[36,-258],[515,134],[290,-376],[670,-234],[242,-238],[263,-553],[-510,-275],[654,-386],[441,-130],[400,-543],[437,-39],[-87,-414],[-487,-687],[-342,253],[-437,568],[-359,-74],[-35,-338],[292,-344],[377,-272],[114,-157],[181,-584],[-96,-425],[-350,160],[-697,473],[393,-509],[289,-357],[45,-206],[-753,236],[-596,343],[-337,287],[97,167],[-414,304],[-405,286],[5,-171],[-803,-94],[-235,203],[183,435],[522,10],[571,76],[-92,211],[96,294],[360,576],[-77,261],[-107,203],[-425,286],[-563,201],[178,150],[-294,367],[-245,34],[-219,201],[-149,-175],[-503,-76],[-1011,132],[-588,174],[-450,89],[-231,207],[290,270],[-394,2],[-88,599],[213,528],[286,241],[717,158],[-204,-382],[219,-369],[256,477],[704,242],[477,-611],[-42,-387],[550,172]],[[23749,94380],[579,-20],[530,-144],[-415,-526],[-331,-115],[-298,-442],[-317,22],[-173,519],[4,294],[145,251],[276,161]],[[15873,95551],[472,442],[570,383],[426,-9],[381,87],[-38,-454],[-214,-205],[-259,-29],[-517,-252],[-444,-91],[-377,128]],[[13136,82508],[267,47],[-84,-671],[242,-475],[-111,1],[-167,270],[-103,272],[-140,184],[-51,260],[16,188],[131,-76]],[[20696,97433],[546,-81],[751,-215],[212,-281],[108,-247],[-453,66],[-457,192],[-619,21],[268,176],[-335,142],[-21,227]],[[15692,79240],[-140,-82],[-456,269],[-84,209],[-248,207],[-50,168],[-286,107],[-107,321],[24,137],[291,-129],[171,-89],[261,-63],[94,-204],[138,-280],[277,-244],[115,-327]],[[16239,94566],[397,-123],[709,-33],[270,-171],[298,-249],[-349,-149],[-681,-415],[-344,-414],[0,-257],[-731,-285],[-147,259],[-641,312],[119,250],[192,432],[241,388],[-272,362],[939,93]],[[20050,95391],[247,99],[291,-26],[49,-289],[-169,-281],[-940,-91],[-701,-256],[-423,-14],[-35,193],[577,261],[-1255,-70],[-389,106],[379,577],[262,165],[782,-199],[493,-350],[485,-45],[-397,565],[255,215],[286,-68],[94,-282],[109,-210]],[[20410,93755],[311,-239],[175,-575],[86,-417],[466,-293],[502,-279],[-31,-260],[-456,-48],[178,-227],[-94,-217],[-503,93],[-478,160],[-322,-36],[-522,-201],[-704,-88],[-494,-56],[-151,279],[-379,161],[-246,-66],[-343,468],[185,62],[429,101],[392,-26],[362,103],[-537,138],[-594,-47],[-394,12],[-146,217],[644,237],[-428,-9],[-485,156],[233,443],[193,235],[744,359],[284,-114],[-139,-277],[618,179],[386,-298],[314,302],[254,-194],[227,-580],[140,244],[-197,606],[244,86],[276,-94]],[[22100,93536],[-306,386],[329,286],[331,-124],[496,75],[72,-172],[-259,-283],[420,-254],[-50,-532],[-455,-229],[-268,50],[-192,225],[-690,456],[5,189],[567,-73]],[[20389,94064],[372,24],[211,-130],[-244,-390],[-434,413],[95,83]],[[22639,95907],[212,-273],[9,-303],[-127,-440],[-458,-60],[-298,94],[5,345],[-455,-46],[-18,457],[299,-18],[419,201],[390,-34],[22,77]],[[23329,98201],[192,180],[285,42],[-122,135],[646,30],[355,-315],[468,-127],[455,-112],[220,-390],[334,-190],[-381,-176],[-513,-445],[-492,-42],[-575,76],[-299,240],[4,215],[220,157],[-508,-4],[-306,196],[-176,268],[193,262]],[[24559,98965],[413,112],[324,19],[545,96],[409,220],[344,-30],[300,-166],[211,319],[367,95],[498,65],[849,24],[148,-63],[802,100],[601,-38],[602,-37],[742,-47],[597,-75],[508,-161],[-12,-157],[-678,-257],[-672,-119],[-251,-133],[605,3],[-656,-358],[-452,-167],[-476,-483],[-573,-98],[-177,-120],[-841,-64],[383,-74],[-192,-105],[230,-292],[-264,-202],[-429,-167],[-132,-232],[-388,-176],[39,-134],[475,23],[6,-144],[-742,-355],[-726,163],[-816,-91],[-414,71],[-525,31],[-35,284],[514,133],[-137,427],[170,41],[742,-255],[-379,379],[-450,113],[225,229],[492,141],[79,206],[-392,231],[-118,304],[759,-26],[220,-64],[433,216],[-625,68],[-972,-38],[-491,201],[-232,239],[-324,173],[-61,202]],[[29106,90427],[-180,-174],[-312,-30],[-69,289],[118,331],[255,82],[217,-163],[3,-253],[-32,-82]],[[23262,91636],[169,-226],[-173,-207],[-374,179],[-226,-65],[-380,266],[245,183],[194,256],[295,-168],[166,-106],[84,-112]],[[32078,80046],[96,49],[365,-148],[284,-247],[8,-108],[-135,-11],[-360,186],[-258,279]],[[32218,78370],[97,-288],[202,-79],[257,16],[-137,-242],[-102,-38],[-353,250],[-69,198],[105,183]],[[31350,77248],[48,-194],[-296,-286],[-286,-204],[-293,-175],[-147,-351],[-47,-133],[-3,-313],[92,-313],[115,-15],[-29,216],[83,-131],[-22,-169],[-188,-96],[-133,11],[-205,-103],[-121,-29],[-162,-29],[-231,-171],[408,111],[82,-112],[-389,-177],[-177,-1],[8,72],[-84,-164],[82,-27],[-60,-424],[-203,-455],[-20,152],[-61,30],[-91,148],[57,-318],[69,-105],[5,-223],[-89,-230],[-157,-472],[-25,24],[86,402],[-142,225],[-33,491],[-53,-255],[59,-375],[-183,93],[191,-191],[12,-562],[79,-41],[29,-204],[39,-591],[-176,-439],[-288,-175],[-182,-346],[-139,-38],[-141,-217],[-39,-199],[-305,-383],[-157,-281],[-131,-351],[-43,-419],[50,-411],[92,-505],[124,-418],[1,-256],[132,-685],[-9,-398],[-12,-230],[-69,-361],[-83,-75],[-137,72],[-44,259],[-105,136],[-148,508],[-129,452],[-42,231],[57,393],[-77,325],[-217,494],[-108,90],[-281,-268],[-49,30],[-135,275],[-174,147],[-314,-75],[-247,66],[-212,-41],[-114,-92],[50,-157],[-5,-240],[59,-117],[-53,-77],[-103,87],[-104,-112],[-202,18],[-207,312],[-242,-73],[-202,137],[-173,-42],[-234,-138],[-253,-438],[-276,-255],[-152,-282],[-63,-266],[-3,-407],[14,-284],[52,-201]],[[23016,65864],[-108,-18],[-197,130],[-217,184],[-78,277],[-61,414],[-164,337],[-96,346],[-139,404],[-196,236],[-227,-11],[-175,-467],[-230,177],[-144,178],[-69,325],[-92,309],[-165,260],[-142,186],[-102,210],[-481,0],[0,-244],[-221,0],[-552,-4],[-634,416],[-419,287],[26,116],[-353,-64],[-316,-46]],[[17464,69802],[-46,302],[-180,340],[-130,71],[-30,169],[-156,30],[-100,159],[-258,59],[-71,95],[-33,324],[-270,594],[-231,821],[10,137],[-123,195],[-215,495],[-38,482],[-148,323],[61,489],[-10,507],[-89,453],[109,557],[34,536],[33,536],[-50,792],[-88,506],[-80,274],[33,115],[402,-200],[148,-558],[69,156],[-45,484],[-94,485]],[[6833,62443],[49,-51],[45,-79],[71,-207],[-7,-33],[-108,-126],[-89,-92],[-41,-99],[-69,84],[8,165],[-46,216],[14,65],[48,97],[-19,116],[16,55],[21,-11],[107,-100]],[[6668,62848],[-23,-71],[-94,-43],[-47,125],[-32,48],[-3,37],[27,50],[99,-56],[73,-90]],[[6456,63091],[-9,-63],[-149,17],[21,72],[137,-26]],[[6104,63411],[23,-38],[80,-196],[-15,-34],[-19,8],[-97,21],[-35,133],[-11,24],[74,82]],[[5732,63705],[5,-138],[-33,-58],[-93,107],[14,43],[43,58],[64,-12]],[[3759,86256],[220,-54],[27,-226],[-171,-92],[-182,110],[-168,161],[274,101]],[[7436,84829],[185,-40],[117,-183],[-240,-281],[-277,-225],[-142,152],[-43,277],[252,210],[148,90]],[[13740,82958],[-153,223],[-245,188],[-78,515],[-358,478],[-150,558],[-267,38],[-441,15],[-326,170],[-574,613],[-266,112],[-486,211],[-385,-51],[-546,272],[-330,252],[-309,-125],[58,-411],[-154,-38],[-321,-123],[-245,-199],[-308,-126],[-39,348],[125,580],[295,182],[-76,148],[-354,-329],[-190,-394],[-400,-420],[203,-287],[-262,-424],[-299,-248],[-278,-180],[-69,-261],[-434,-305],[-87,-278],[-325,-252],[-191,45],[-259,-165],[-282,-201],[-231,-197],[-477,-169],[-43,99],[304,276],[271,182],[296,324],[345,66],[137,243],[385,353],[62,119],[205,208],[48,448],[141,349],[-320,-179],[-90,102],[-150,-215],[-181,300],[-75,-212],[-104,294],[-278,-236],[-170,0],[-24,352],[50,216],[-179,211],[-361,-113],[-235,277],[-190,142],[-1,334],[-214,252],[108,340],[226,330],[99,303],[225,43],[191,-94],[224,285],[201,-51],[212,183],[-52,270],[-155,106],[205,228],[-170,-7],[-295,-128],[-85,-131],[-219,131],[-392,-67],[-407,142],[-117,238],[-351,343],[390,247],[620,289],[228,0],[-38,-296],[586,23],[-225,366],[-342,225],[-197,296],[-267,252],[-381,187],[155,309],[493,19],[350,270],[66,287],[284,281],[271,68],[526,262],[256,-40],[427,315],[421,-124],[201,-266],[123,114],[469,-35],[-16,-136],[425,-101],[283,59],[585,-186],[534,-56],[214,-77],[370,96],[421,-177],[302,-83]],[[2297,88264],[171,-113],[173,61],[225,-156],[276,-79],[-23,-64],[-211,-125],[-211,128],[-106,107],[-245,-34],[-66,52],[17,223]],[[74266,79657],[-212,-393],[-230,-56],[-13,-592],[-155,-267],[-551,194],[-200,-1058],[-143,-131],[-550,-236],[250,-1026],[-190,-154],[22,-337]],[[72294,75601],[-171,87],[-140,212],[-412,62],[-461,16],[-100,-65],[-396,248],[-158,-122],[-43,-349],[-457,204],[-183,-84],[-62,-259]],[[69711,75551],[-159,-109],[-367,-412],[-121,-422],[-104,-4],[-76,280],[-353,19],[-57,484],[-135,4],[21,593],[-333,431],[-476,-46],[-326,-86],[-265,533],[-227,223],[-431,423],[-52,51],[-715,-349],[11,-2178]],[[65546,74986],[-142,-29],[-195,463],[-188,166],[-315,-123],[-123,-197]],[[64583,75266],[-15,144],[68,246],[-53,206],[-322,202],[-125,530],[-154,150],[-9,192],[270,-56],[11,432],[236,96],[243,-88],[50,576],[-50,365],[-278,-28],[-236,144],[-321,-260],[-259,-124]],[[63639,77993],[-142,96],[29,304],[-177,395],[-207,-17],[-235,401],[160,448],[-81,120],[222,649],[285,-342],[35,431],[573,643],[434,15],[612,-409],[329,-239],[295,249],[440,12],[356,-306],[80,175],[391,-25],[69,280],[-450,406],[267,288],[-52,161],[266,153],[-200,405],[127,202],[1039,205],[136,146],[695,218],[250,245],[499,-127],[88,-612],[290,144],[356,-202],[-23,-322],[267,33],[696,558],[-102,-185],[355,-457],[620,-1500],[148,309],[383,-340],[399,151],[154,-106],[133,-341],[194,-115],[119,-251],[358,79],[147,-361]],[[69711,75551],[83,-58],[-234,-382],[205,-223],[198,147],[329,-311],[-355,-425],[-212,58]],[[69725,74357],[-114,-15],[-40,164],[58,274],[-371,-137],[-89,-380],[-132,-326],[-232,28],[-72,-261],[204,-140],[60,-440],[-156,-598]],[[68841,72526],[-210,124],[-154,4]],[[68477,72654],[7,362],[-369,253],[-291,289],[-181,278],[-317,408],[-137,609],[-93,108],[-301,-27],[-106,121],[-30,471],[-374,312],[-234,-343],[-237,-204],[45,-297],[-313,-8]],[[89166,49043],[482,-407],[513,-338],[192,-302],[154,-297],[43,-349],[462,-365],[68,-313],[-256,-64],[62,-393],[248,-388],[180,-627],[159,20],[-11,-262],[215,-100],[-84,-111],[295,-249],[-30,-171],[-184,-41],[-69,153],[-238,66],[-281,89],[-216,377],[-158,325],[-144,517],[-362,259],[-235,-169],[-170,-195],[35,-436],[-218,-203],[-155,99],[-288,25]],[[89175,45193],[-4,1925],[-5,1925]],[[92399,48417],[106,-189],[33,-307],[-87,-157],[-52,348],[-65,229],[-126,193],[-158,252],[-200,174],[77,143],[150,-166],[94,-130],[117,-142],[111,-248]],[[92027,47129],[-152,-144],[-142,-138],[-148,1],[-228,171],[-158,165],[23,183],[249,-86],[152,46],[42,283],[40,15],[27,-314],[158,45],[78,202],[155,211],[-30,348],[166,11],[56,-97],[-5,-327],[-93,-361],[-146,-48],[-44,-166]],[[92988,47425],[84,-134],[135,-375],[131,-200],[-39,-166],[-78,-59],[-120,227],[-122,375],[-59,450],[38,57],[30,-175]],[[89175,45193],[-247,485],[-282,118],[-69,-168],[-352,-18],[118,481],[175,164],[-72,642],[-134,496],[-538,500],[-229,50],[-417,546],[-82,-287],[-107,-52],[-63,216],[-1,257],[-212,290],[299,213],[198,-11],[-23,156],[-407,1],[-110,352],[-248,109],[-117,293],[374,143],[142,192],[446,-242],[44,-220],[78,-955],[287,-354],[232,627],[319,356],[247,1],[238,-206],[206,-212],[298,-113]],[[84713,45326],[28,-117],[5,-179]],[[84746,45030],[-181,-441],[-238,-130],[-33,71],[25,201],[119,360],[275,235]],[[87280,46506],[-27,445],[49,212],[58,200],[63,-173],[0,-282],[-143,-402]],[[82744,53024],[-158,-533],[204,-560],[-48,-272],[312,-546],[-329,-70],[-93,-403],[12,-535],[-267,-404],[-7,-589],[-107,-903],[-41,210],[-316,-266],[-110,361],[-198,34],[-139,189],[-330,-212],[-101,285],[-182,-32],[-229,68],[-43,793],[-138,164],[-134,505],[-38,517],[32,548],[165,392]],[[80461,51765],[47,-395],[190,-334],[179,121],[177,-43],[162,299],[133,52],[263,-166],[226,126],[143,822],[107,205],[96,672],[319,0],[241,-100]],[[85936,48924],[305,-172],[101,-452],[-234,244],[-232,49],[-157,-39],[-192,21],[65,325],[344,24]],[[85242,48340],[-192,108],[-54,254],[281,29],[69,-195],[-104,-196]],[[85536,51864],[20,-322],[164,-52],[26,-241],[-15,-517],[-143,58],[-42,-359],[114,-312],[-78,-71],[-112,374],[-82,755],[56,472],[92,215]],[[84146,51097],[319,25],[275,429],[48,-132],[-223,-587],[-209,-113],[-267,115],[-463,-29],[-243,-85],[-39,-447],[248,-526],[150,268],[518,201],[-22,-272],[-121,86],[-121,-347],[-245,-229],[263,-757],[-50,-203],[249,-682],[-2,-388],[-148,-173],[-109,207],[134,484],[-273,-229],[-69,164],[36,228],[-200,346],[21,576],[-186,-179],[24,-689],[11,-846],[-176,-85],[-119,173],[79,544],[-43,570],[-117,4],[-86,405],[115,387],[40,469],[139,891],[58,243],[237,439],[217,-174],[350,-82]],[[83414,44519],[-368,414],[259,116],[146,-180],[97,-180],[-17,-159],[-117,-11]],[[83705,45536],[185,45],[249,216],[-41,-328],[-417,-168],[-370,73],[0,216],[220,123],[174,-177]],[[82849,45639],[172,48],[69,-251],[-321,-119],[-193,-79],[-149,5],[95,340],[153,5],[74,209],[100,-158]],[[80134,46785],[38,-210],[533,-59],[61,244],[515,-284],[101,-383],[417,-108],[341,-351],[-317,-225],[-306,238],[-251,-16],[-288,44],[-260,106],[-322,225],[-204,59],[-116,-74],[-506,243],[-48,254],[-255,44],[191,564],[337,-35],[224,-231],[115,-45]],[[78991,49939],[47,-412],[97,-330],[204,-52],[135,-374],[-70,-735],[-11,-914],[-308,-12],[-234,494],[-356,482],[-119,358],[-210,481],[-138,443],[-212,827],[-244,493],[-81,508],[-103,461],[-250,372],[-145,506],[-209,330],[-290,652],[-24,300],[178,-24],[430,-114],[246,-577],[215,-401],[153,-246],[263,-635],[283,-9],[233,-405],[161,-495],[211,-270],[-111,-482],[159,-205],[100,-15]],[[30935,19481],[106,-274],[139,-443],[361,-355],[389,-147],[-125,-296],[-264,-29],[-141,208]],[[31400,18145],[-168,16],[-297,1],[0,1319]],[[33993,32727],[-70,-473],[-74,-607],[3,-588],[-61,-132],[-21,-382]],[[33770,30545],[-19,-308],[353,-506],[-38,-408],[173,-257],[-14,-289],[-267,-757],[-412,-317],[-557,-123],[-305,59],[59,-352],[-57,-442],[51,-298],[-167,-208],[-284,-82],[-267,216],[-108,-155],[39,-587],[188,-178],[152,186],[82,-307],[-255,-183],[-223,-367],[-41,-595],[-66,-316],[-262,-2],[-218,-302],[-80,-443],[273,-433],[266,-119],[-96,-531],[-328,-333],[-180,-692],[-254,-234],[-113,-276],[89,-614],[185,-342],[-117,30]],[[30952,19680],[-257,93],[-672,79],[-115,344],[6,443],[-185,-38],[-98,214],[-24,626],[213,260],[88,375],[-33,299],[148,504],[101,782],[-30,347],[122,112],[-30,223],[-129,118],[92,248],[-126,224],[-65,682],[112,120],[-47,720],[65,605],[75,527],[166,215],[-84,576],[-1,543],[210,386],[-7,494],[159,576],[1,544],[-72,108],[-128,1020],[171,607],[-27,572],[100,537],[182,555],[196,367],[-83,232],[58,190],[-9,985],[302,291],[96,614],[-34,148]],[[31359,37147],[231,534],[364,-144],[163,-427],[109,475],[316,-24],[45,-127]],[[32587,37434],[511,-964],[227,-89],[339,-437],[286,-231],[40,-261],[-273,-898],[280,-160],[312,-91],[220,95],[252,453],[45,521]],[[34826,35372],[138,114],[139,-341],[-6,-472],[-234,-326],[-186,-241],[-314,-573],[-370,-806]],[[31400,18145],[-92,-239],[-238,-183],[-137,19],[-164,48],[-202,177],[-291,86],[-350,330],[-283,317],[-383,662],[229,-124],[390,-395],[369,-212],[143,271],[90,405],[256,244],[198,-70]],[[30669,40193],[136,-402],[37,-426],[146,-250],[-88,-572],[150,-663],[109,-814],[200,81]],[[30952,19680],[-247,4],[-134,-145],[-250,-213],[-45,-552],[-118,-14],[-313,192],[-318,412],[-346,338],[-87,374],[79,346],[-140,393],[-36,1007],[119,568],[293,457],[-422,172],[265,522],[94,982],[309,-208],[145,1224],[-186,157],[-87,-738],[-175,83],[87,845],[95,1095],[127,404],[-80,576],[-22,666],[117,19],[170,954],[192,945],[118,881],[-64,885],[83,487],[-34,730],[163,721],[50,1143],[89,1227],[87,1321],[-20,967],[-58,832]],[[30452,39739],[143,151],[74,303]],[[58538,45652],[-109,60],[-373,-99],[-75,-71],[-79,-377],[62,-261],[-49,-699],[-34,-593],[75,-105],[194,-230],[76,107],[23,-637],[-212,5],[-114,325],[-103,252],[-213,82],[-62,310],[-170,-187],[-222,83],[-93,268],[-176,55],[-131,-15],[-15,184],[-96,15]],[[56642,44124],[-127,35],[-172,-89],[-121,15],[-68,-54],[15,703],[-93,219],[-21,363],[41,356],[-56,228],[-5,372],[-337,-5],[24,213],[-142,-2],[-15,-103],[-172,-23],[-69,-344],[-42,-148],[-154,83],[-91,-83],[-184,-47],[-106,309],[-64,191],[-80,354],[-68,440],[-820,8],[-98,-71],[-80,11],[-115,-79]],[[53422,46976],[-39,183]],[[53383,47159],[71,62],[9,258],[45,152],[101,124]],[[53609,47755],[73,-60],[95,226],[152,-6],[17,-167],[104,-105],[164,370],[161,289],[71,189],[-10,486],[121,574],[127,304],[183,285],[32,189],[7,216],[45,205],[-14,335],[34,524],[55,368],[83,316],[16,357]],[[55125,52650],[25,412],[108,300],[149,190],[229,-200],[177,-218],[203,-59],[207,-115],[83,357],[38,46],[127,-60],[309,295],[110,-125],[90,18],[41,143],[104,51],[209,-62],[178,-14],[91,63]],[[57603,53672],[169,-488],[124,-71],[75,99],[128,-39],[155,125],[66,-252],[244,-393]],[[58564,52653],[-16,-691],[111,-80],[-89,-210],[-107,-157],[-106,-308],[-59,-274],[-15,-475],[-65,-225],[-2,-446]],[[58216,49787],[-80,-165],[-10,-351],[-38,-46],[-26,-323]],[[58062,48902],[70,-268],[17,-713]],[[61551,49585],[-165,488],[-3,2152],[243,670]],[[61626,52895],[76,186],[178,11],[247,417],[362,26],[785,1773]],[[63274,55308],[194,493],[125,363],[0,308],[0,596],[1,244],[2,9]],[[63596,57321],[89,12],[128,88],[147,59],[132,202],[105,2],[6,-163],[-25,-344],[1,-310],[-59,-214],[-78,-639],[-134,-659],[-172,-755],[-238,-866],[-237,-661],[-327,-806],[-278,-479],[-415,-586],[-259,-450],[-304,-715],[-64,-312],[-63,-140]],[[59417,50018],[-3,627],[80,239],[137,391],[101,431],[-123,678],[-32,296],[-132,411]],[[59445,53091],[171,352],[188,390]],[[59804,53833],[145,-99],[0,-332],[95,-194],[193,0],[352,-502],[87,-6],[65,16],[62,-68],[185,-47],[82,247],[254,247],[112,-200],[190,0]],[[61551,49585],[-195,-236],[-68,-246],[-104,-44],[-40,-416],[-89,-238],[-54,-393],[-112,-195]],[[56824,55442],[-212,258],[-96,170],[-18,184],[45,246],[-1,241],[-160,369],[-31,253]],[[56351,57163],[3,143],[-102,174],[-3,343],[-58,228],[-98,-34],[28,217],[72,246],[-32,245],[92,181],[-58,138],[73,365],[127,435],[240,-41],[-14,2345]],[[56621,62148],[3,248],[320,2],[0,1180]],[[56944,63578],[1117,0],[1077,0],[1102,0]],[[60240,63578],[90,-580],[-61,-107],[40,-608],[102,-706],[106,-145],[152,-219]],[[60669,61213],[-141,-337],[-204,-97],[-88,-181],[-27,-393],[-120,-868],[30,-236]],[[60119,59101],[-45,-508],[-112,-582],[-168,-293],[-119,-451],[-28,-241],[-132,-166],[-82,-618],[4,-531]],[[59437,55711],[-3,460],[-39,12],[5,294],[-33,203],[-143,233],[-34,426],[34,436],[-129,41],[-19,-132],[-167,-30],[67,-173],[23,-355],[-152,-324],[-138,-426],[-144,-61],[-233,345],[-105,-122],[-29,-172],[-143,-112],[-9,-122],[-277,0],[-38,122],[-200,20],[-100,-101],[-77,51],[-143,344],[-48,163],[-200,-81],[-76,-274],[-72,-528],[-95,-111],[-85,-65],[189,-230]],[[56351,57163],[-176,-101],[-141,-239],[-201,-645],[-261,-273],[-269,36],[-78,-54],[28,-208],[-145,-207],[-118,-230],[-350,-226],[-69,134],[-46,11],[-52,-152],[-229,-44]],[[54244,54965],[43,160],[-87,407],[-39,245],[-121,100],[-164,345],[60,279],[127,-60],[78,42],[155,-6],[-151,537],[10,393],[-18,392],[-111,378]],[[54026,58177],[28,279],[-178,13],[0,380],[-115,219],[120,778],[354,557],[15,769],[107,1199],[60,254],[-116,203],[-4,188],[-104,153],[-68,919]],[[54125,64088],[280,323],[1108,-1132],[1108,-1131]],[[30080,62227],[24,-321],[-21,-228],[-68,-99],[71,-177],[-5,-161]],[[30081,61241],[-185,100],[-131,-41],[-169,43],[-130,-110],[-149,184],[24,190],[256,-82],[210,-47],[100,131],[-127,256],[2,226],[-175,92],[62,163],[170,-26],[241,-93]],[[30080,62227],[34,101],[217,-3],[165,-152],[73,15],[50,-209],[152,11],[-9,-176],[124,-21],[136,-217],[-103,-240],[-132,128],[-127,-25],[-92,28],[-50,-107],[-106,-37],[-43,144],[-92,-85],[-111,-405],[-71,94],[-14,170]],[[76049,98451],[600,133],[540,-297],[640,-572],[-69,-531],[-606,-73],[-773,170],[-462,226],[-213,423],[-379,117],[722,404]],[[78565,97421],[704,-336],[-82,-240],[-1566,-228],[507,776],[229,66],[208,-38]],[[88563,95563],[734,-26],[1004,-313],[-219,-439],[-1023,16],[-461,-139],[-550,384],[149,406],[366,111]],[[91172,95096],[697,-155],[-321,-234],[-444,53],[-516,233],[66,192],[518,-89]],[[88850,93928],[263,234],[348,54],[394,-226],[34,-155],[-421,-4],[-569,66],[-49,31]],[[62457,98194],[542,107],[422,8],[57,-160],[159,142],[262,97],[412,-129],[-107,-90],[-373,-78],[-250,-45],[-39,-97],[-324,-98],[-301,140],[158,185],[-618,18]],[[56314,82678],[-511,-9],[-342,67]],[[55461,82736],[63,260],[383,191]],[[55907,83187],[291,-103],[123,-94],[-30,-162],[23,-150]],[[64863,94153],[665,518],[-75,268],[621,312],[917,380],[925,110],[475,220],[541,76],[193,-233],[-187,-184],[-984,-293],[-848,-282],[-863,-562],[-414,-577],[-435,-568],[56,-491],[531,-484],[-164,-52],[-907,77],[-74,262],[-503,158],[-40,320],[284,126],[-10,323],[551,503],[-255,73]],[[89698,82309],[96,-569],[-7,-581],[114,-597],[280,-1046],[-411,195],[-171,-854],[271,-605],[-8,-413],[-211,356],[-182,-457],[-51,496],[31,575],[-32,638],[64,446],[13,790],[-163,581],[24,808],[257,271],[-110,274],[123,83],[73,-391]],[[86327,75524],[-39,104]],[[86288,75628],[-2,300],[142,16],[40,698],[-73,506],[238,208],[338,-104],[186,575],[96,647],[107,216],[146,532],[-459,-175],[-240,-233],[-423,1],[-112,555],[-329,420],[-483,189],[-103,579],[-97,363],[-104,254],[-172,596],[-244,217],[-415,176],[-369,-16],[-345,-106],[-229,-294],[152,-141],[4,-326],[-155,-189],[-251,-627],[3,-260],[-392,-373],[-333,223]],[[82410,80055],[-331,-49],[-146,198],[-166,63],[-407,-416],[-366,-98],[-255,-146],[-350,96],[-258,-6],[-168,302],[-272,284],[-279,78],[-351,-78],[-263,-109],[-394,248],[-53,443],[-327,152],[-252,69],[-311,244],[-288,-612],[113,-348],[-270,-411],[-402,148],[-277,22],[-186,276],[-289,8],[-242,182],[-423,-278],[-530,-509],[-292,-102]],[[74375,79706],[-109,-49]],[[63639,77993],[-127,-350],[-269,-97],[-276,-610],[252,-561],[-27,-398],[303,-696]],[[63495,75281],[-166,-238],[-48,-150],[-122,40],[-191,359],[-78,20]],[[62890,75312],[-175,137],[-85,242],[-259,124],[-169,-93],[-48,110],[-378,283],[-409,96],[-235,101],[-34,-70]],[[61098,76242],[-354,499],[-317,223],[-240,347],[202,95],[231,494],[-156,234],[410,241],[-8,129],[-249,-95]],[[60617,78409],[9,262],[143,165],[269,43],[44,197],[-62,326],[113,310],[-3,173],[-410,192],[-162,-6],[-172,277],[-213,-94],[-352,208],[6,116],[-99,256],[-222,29],[-23,183],[70,120],[-178,334],[-288,-57],[-84,30],[-70,-134],[-104,23]],[[58829,81362],[-68,379],[-66,196],[54,55],[224,-20],[108,129],[-80,157],[-187,104],[16,107],[-113,108],[-174,387],[60,159],[-27,277],[-272,141],[-146,-70],[-39,146],[-293,149]],[[57826,83766],[-89,348],[-24,287],[-134,136]],[[57579,84537],[120,187],[-83,551],[198,341],[-42,103]],[[57772,85719],[316,327],[-291,280]],[[57797,86326],[594,755],[258,341],[105,301],[-411,405],[113,385],[-250,440],[187,506],[-323,673],[256,445],[-425,394],[41,414]],[[57942,91385],[224,54],[473,237]],[[58639,91676],[286,206],[456,-358],[761,-140],[1050,-668],[213,-281],[18,-393],[-308,-311],[-454,-157],[-1240,449],[-204,-75],[453,-433],[18,-274],[18,-604],[358,-180],[217,-153],[36,286],[-168,254],[177,224],[672,-368],[233,144],[-186,433],[647,578],[256,-34],[260,-206],[161,406],[-231,352],[136,353],[-204,367],[777,-190],[158,-331],[-351,-73],[1,-328],[219,-203],[429,128],[68,377],[580,282],[970,507],[209,-29],[-273,-359],[344,-61],[199,202],[521,16],[412,245],[317,-356],[315,391],[-291,343],[145,195],[820,-179],[385,-185],[1006,-675],[186,309],[-282,313],[-8,125],[-335,58],[92,280],[-149,461],[-8,189],[512,535],[183,537],[206,116],[736,-156],[57,-328],[-263,-479],[173,-189],[89,-413],[-63,-809],[307,-362],[-120,-395],[-544,-839],[318,-87],[110,213],[306,151],[74,293],[240,281],[-162,336],[130,390],[-304,49],[-67,328],[222,593],[-361,482],[497,398],[-64,421],[139,13],[145,-328],[-109,-570],[297,-108],[-127,426],[465,233],[577,31],[513,-337],[-247,492],[-28,630],[483,119],[669,-26],[602,77],[-226,309],[321,388],[319,16],[540,293],[734,79],[93,162],[729,55],[227,-133],[624,314],[510,-10],[77,255],[265,252],[656,242],[476,-191],[-378,-146],[629,-90],[75,-292],[254,143],[812,-7],[626,-289],[223,-221],[-69,-307],[-307,-175],[-730,-328],[-209,-175],[345,-83],[410,-149],[251,112],[141,-379],[122,153],[444,93],[892,-97],[67,-276],[1162,-88],[15,451],[590,-104],[443,4],[449,-312],[128,-378],[-165,-247],[349,-465],[437,-240],[268,620],[446,-266],[473,159],[538,-182],[204,166],[455,-83],[-201,549],[367,256],[2509,-384],[236,-351],[727,-451],[1122,112],[553,-98],[231,-244],[-33,-432],[342,-168],[372,121],[492,15],[525,-116],[526,66],[484,-526],[344,189],[-224,378],[123,262],[886,-165],[578,36],[799,-282],[-99610,-258],[681,-451],[728,-588],[-24,-367],[187,-147],[-64,429],[754,-88],[544,-553],[-276,-257],[-455,-61],[-7,-578],[-111,-122],[-260,17],[-212,206],[-369,172],[-62,257],[-283,96],[-315,-76],[-151,207],[60,219],[-333,-140],[126,-278],[-158,-251],[99997,-3],[-357,-260],[-360,44],[250,-315],[166,-487],[128,-159],[32,-244],[-71,-157],[-518,129],[-777,-445],[-247,-69],[-425,-415],[-403,-362],[-102,-269],[-397,409],[-724,-464],[-126,219],[-268,-253],[-371,81],[-90,-388],[-333,-572],[10,-239],[316,-132],[-37,-860],[-258,-22],[-119,-494],[116,-255],[-486,-302],[-96,-674],[-415,-144],[-83,-600],[-400,-551],[-103,407],[-119,862],[-155,1313],[134,819],[234,353],[14,276],[432,132],[496,744],[479,608],[499,471],[223,833],[-337,-50],[-167,-487],[-705,-649],[-227,727],[-717,-201],[-696,-990],[230,-362],[-620,-154],[-430,-61],[20,427],[-431,90],[-344,-291],[-850,102],[-914,-175],[-899,-1153],[-1065,-1394],[438,-74],[136,-370],[270,-132],[178,295],[305,-38],[401,-650],[9,-503],[-217,-590],[-23,-705],[-126,-945],[-418,-855],[-94,-409],[-377,-688],[-374,-682],[-179,-349],[-370,-346],[-175,-8],[-175,287],[-373,-432],[-43,-197]],[[0,92833],[36,24],[235,-1],[402,-169],[-24,-81],[-286,-141],[-363,-36],[99694,-30],[-49,187],[-99645,247]],[[59287,77741],[73,146],[198,-127],[89,-23],[36,-117],[42,-18]],[[59725,77602],[2,-51],[136,-142],[284,35],[-55,-210],[-304,-103],[-377,-342],[-154,121],[61,277],[-304,173],[50,113],[265,197],[-42,71]],[[28061,66408],[130,47],[184,-18],[8,-153],[-303,-95],[-19,219]],[[28391,66555],[220,-265],[-48,-420],[-51,75],[4,309],[-124,234],[-1,67]],[[28280,65474],[84,-23],[97,-491],[1,-343],[-68,-29],[-70,340],[-104,171],[60,375]],[[33000,19946],[333,354],[236,-148],[167,237],[222,-266],[-83,-207],[-375,-177],[-125,207],[-236,-266],[-139,266]],[[54206,97653],[105,202],[408,20],[350,-206],[915,-440],[-699,-233],[-155,-435],[-243,-111],[-132,-490],[-335,-23],[-598,361],[252,210],[-416,170],[-541,499],[-216,463],[757,212],[152,-207],[396,8]],[[57942,91385],[117,414],[-356,235],[-431,-200],[-137,-433],[-265,-262],[-298,143],[-362,-29],[-309,312],[-167,-156]],[[55734,91409],[-172,-24],[-41,-389],[-523,95],[-74,-329],[-267,2],[-183,-421],[-278,-655],[-431,-831],[101,-202],[-97,-234],[-275,10],[-180,-554],[17,-784],[177,-300],[-92,-694],[-231,-405],[-122,-341]],[[53063,85353],[-187,363],[-548,-684],[-371,-138],[-384,301],[-99,635],[-88,1363],[256,381],[733,496],[549,609],[508,824],[668,1141],[465,444],[763,741],[610,259],[457,-31],[423,489],[506,-26],[499,118],[869,-433],[-358,-158],[305,-371]],[[57613,97879],[-412,-318],[-806,-70],[-819,98],[-50,163],[-398,11],[-304,271],[858,165],[403,-142],[281,177],[702,-148],[545,-207]],[[56867,96577],[-620,-241],[-490,137],[191,152],[-167,189],[575,119],[110,-222],[401,-134]],[[37010,99398],[932,353],[975,-27],[354,218],[982,57],[2219,-74],[1737,-469],[-513,-227],[-1062,-26],[-1496,-58],[140,-105],[984,65],[836,-204],[540,181],[231,-212],[-305,-344],[707,220],[1348,229],[833,-114],[156,-253],[-1132,-420],[-157,-136],[-888,-102],[643,-28],[-324,-431],[-224,-383],[9,-658],[333,-386],[-434,-24],[-457,-187],[513,-313],[65,-502],[-297,-55],[360,-508],[-617,-42],[322,-241],[-91,-208],[-391,-91],[-388,-2],[348,-400],[4,-263],[-549,244],[-143,-158],[375,-148],[364,-361],[105,-476],[-495,-114],[-214,228],[-344,340],[95,-401],[-322,-311],[732,-25],[383,-32],[-745,-515],[-755,-466],[-813,-204],[-306,-2],[-288,-228],[-386,-624],[-597,-414],[-192,-24],[-370,-145],[-399,-138],[-238,-365],[-4,-415],[-141,-388],[-453,-472],[112,-462],[-125,-488],[-142,-577],[-391,-36],[-410,482],[-556,3],[-269,324],[-186,577],[-481,735],[-141,385],[-38,530],[-384,546],[100,435],[-186,208],[275,691],[418,220],[110,247],[58,461],[-318,-209],[-151,-88],[-249,-84],[-341,193],[-19,401],[109,314],[258,9],[567,-157],[-478,375],[-249,202],[-276,-83],[-232,147],[310,550],[-169,220],[-220,409],[-335,626],[-353,230],[3,247],[-745,346],[-590,43],[-743,-24],[-677,-44],[-323,188],[-482,372],[729,186],[559,31],[-1188,154],[-627,241],[39,229],[1051,285],[1018,284],[107,214],[-750,213],[243,235],[961,413],[404,63],[-115,265],[658,156],[854,93],[853,5],[303,-184],[737,325],[663,-221],[390,-46],[577,-192],[-660,318],[38,253]],[[69148,21851],[179,-186],[263,-74],[9,-112],[-77,-269],[-427,-38],[-7,314],[41,244],[19,121]],[[84713,45326],[32,139],[239,133],[194,20],[87,74],[105,-74],[-102,-160],[-289,-258],[-233,-170]],[[54540,33696],[133,292],[109,-162],[47,-252],[125,-43],[175,-112],[149,43],[248,302],[0,2182]],[[55526,35946],[75,-88],[165,-562],[-26,-360],[62,-207],[199,60],[139,264],[132,177],[68,283],[135,137],[117,-71],[133,-166],[226,-29],[178,138],[28,184],[48,283],[152,47],[83,222],[93,393],[249,442],[393,435]],[[58175,37528],[113,-7],[134,-100],[94,71],[148,-59]],[[58664,37433],[133,-832],[72,-419],[-49,-659],[23,-212]],[[58843,35311],[-140,108],[-80,-42],[-26,-172],[-76,-222],[2,-204],[166,-320],[163,63],[56,263]],[[58908,34785],[211,-5]],[[59119,34780],[-70,-430],[-32,-491],[-72,-267],[-190,-298],[-54,-86],[-118,-300],[-77,-303],[-158,-424],[-314,-609],[-196,-355],[-210,-269],[-290,-229],[-141,-31],[-36,-164],[-169,88],[-138,-113],[-301,114],[-168,-72],[-115,31],[-286,-233],[-238,-94],[-171,-223],[-127,-14],[-117,210],[-94,11],[-120,264],[-13,-82],[-37,159],[2,346],[-90,396],[89,108],[-7,453],[-182,553],[-139,501],[-1,1],[-199,768]],[[58049,33472],[-121,182],[-130,-120],[-151,-232],[-148,-374],[209,-454],[99,59],[51,188],[155,93],[47,192],[85,288],[-96,178]],[[23016,65864],[-107,-518],[-49,-426],[-20,-791],[-27,-289],[48,-322],[86,-288],[56,-458],[184,-440],[65,-337],[109,-291],[295,-157],[114,-247],[244,165],[212,60],[208,106],[175,101],[176,241],[67,345],[22,496],[48,173],[188,155],[294,137],[246,-21],[169,50],[66,-125],[-9,-285],[-149,-351],[-66,-360],[51,-103],[-42,-255],[-69,-461],[-71,152],[-58,-10]],[[25472,61510],[-53,-8],[-99,-357],[-51,70],[-33,-27],[2,-87]],[[25238,61101],[-257,7],[-259,-1],[-1,-333],[-125,-1],[103,-198],[103,-136],[31,-128],[45,-36],[-7,-201],[-357,-2],[-133,-481],[39,-111],[-32,-138],[-7,-172]],[[24381,59170],[-314,636],[-144,191],[-226,155],[-156,-43],[-223,-223],[-140,-58],[-196,156],[-208,112],[-260,271],[-208,83],[-314,275],[-233,282],[-70,158],[-155,35],[-284,187],[-116,270],[-299,335],[-139,373],[-66,288],[93,57],[-29,169],[64,153],[1,204],[-93,266],[-25,235],[-94,298],[-244,587],[-280,462],[-135,368],[-238,241],[-51,145],[42,365],[-142,138],[-164,287],[-69,412],[-149,48],[-162,311],[-130,288],[-12,184],[-149,446],[-99,452],[5,227],[-201,234],[-93,-25],[-159,163],[-44,-240],[46,-284],[27,-444],[95,-243],[206,-407],[46,-139],[42,-42],[37,-203],[49,8],[56,-381],[85,-150],[59,-210],[174,-300],[92,-550],[83,-259],[77,-277],[15,-311],[134,-20],[112,-268],[100,-264],[-6,-106],[-117,-217],[-49,3],[-74,359],[-181,337],[-201,286],[-142,150],[9,432],[-42,320],[-132,183],[-191,264],[-37,-76],[-70,154],[-171,143],[-164,343],[20,44],[115,-33],[103,221],[10,266],[-214,422],[-163,163],[-102,369],[-103,388],[-129,472],[-113,531]],[[33993,32727],[180,63],[279,-457],[103,18],[286,-379],[218,-327],[160,-402],[-122,-280],[77,-334]],[[35174,30629],[-121,-372],[-313,-328],[-205,118],[-151,-63],[-256,253],[-189,-19],[-169,327]],[[34826,35372],[54,341],[38,350],[0,325],[-100,107],[-104,-96],[-103,26],[-33,228],[-26,541],[-52,177],[-187,160],[-114,-116],[-293,113],[18,802],[-82,329]],[[33842,38659],[87,122],[-27,337],[77,259],[49,465],[-66,367],[-151,166],[-30,233],[41,342],[-533,24],[-107,688],[81,10],[-3,255],[-55,172],[-12,342],[-161,175],[-175,-6],[-115,172],[-188,117],[-109,220],[-311,98],[-302,529],[23,396],[-34,227],[29,443],[-363,-100],[-147,-222],[-243,-239],[-62,-179],[-143,-13],[-206,50]],[[30686,44109],[-157,-102],[-126,68],[18,898],[-228,-348],[-245,15],[-105,315],[-184,34],[59,254],[-155,359],[-115,532],[73,108],[0,250],[168,171],[-28,319],[71,206],[20,275],[318,402],[227,114],[37,89],[251,-28]],[[30585,48040],[125,1620],[6,256],[-43,339],[-123,215],[1,430],[156,97],[56,-61],[9,226],[-162,61],[-4,370],[541,-13],[92,203],[77,-187],[55,-349],[52,73]],[[31423,51320],[153,-312],[216,38],[54,181],[206,138],[115,97],[32,250],[198,168],[-15,124],[-235,51],[-39,372],[12,396],[-125,153],[52,55],[206,-76],[221,-148],[80,140],[200,92],[310,221],[102,225],[-37,167]],[[33129,53652],[145,26],[64,-136],[-36,-259],[96,-90],[63,-274],[-77,-209],[-44,-502],[71,-299],[20,-274],[171,-277],[137,-29],[30,116],[88,25],[126,104],[90,157],[154,-50],[67,21]],[[34294,51702],[151,-48],[25,120],[-46,118],[28,171],[112,-53],[131,61],[159,-125]],[[34854,51946],[121,-122],[86,160],[62,-25],[38,-166],[133,42],[107,224],[85,436],[164,540]],[[35650,53035],[95,28],[69,-327],[155,-1033],[149,-97],[7,-408],[-208,-487],[86,-178],[491,-92],[10,-593],[211,388],[349,-212],[462,-361],[135,-346],[-45,-327],[323,182],[540,-313],[415,23],[411,-489],[355,-662],[214,-170],[237,-24],[101,-186],[94,-752],[46,-358],[-110,-977],[-142,-385],[-391,-822],[-177,-668],[-206,-513],[-69,-11],[-78,-435],[20,-1107],[-77,-910],[-30,-390],[-88,-233],[-49,-790],[-282,-771],[-47,-610],[-225,-256],[-65,-355],[-302,2],[-437,-227],[-195,-263],[-311,-173],[-327,-470],[-235,-586],[-41,-441],[46,-326],[-51,-597],[-63,-289],[-195,-325],[-308,-1040],[-244,-468],[-189,-277],[-127,-562],[-183,-337]],[[33842,38659],[-4,182],[-259,302],[-258,9],[-484,-172],[-133,-520],[-7,-318],[-110,-708]],[[30669,40193],[175,638],[-119,496],[63,199],[-49,219],[108,295],[6,503],[13,415],[60,200],[-240,951]],[[30452,39739],[-279,340],[-24,242],[-551,593],[-498,646],[-214,365],[-115,488],[46,170],[-236,775],[-274,1090],[-262,1177],[-114,269],[-87,435],[-216,386],[-198,239],[90,264],[-134,563],[86,414],[221,373]],[[27693,48568],[33,-246],[-79,-141],[8,-216],[114,47],[113,-64],[116,-298],[157,243],[53,398],[170,514],[334,233],[303,619],[86,384],[-38,449]],[[29063,50490],[74,56],[184,-280],[89,-279],[129,-152],[163,-620],[207,-74],[153,157],[101,-103],[166,51],[213,-276],[-179,-602],[83,-14],[139,-314]],[[29063,50490],[-119,140],[-137,195],[-79,-94],[-235,82],[-68,255],[-52,-10],[-278,338]],[[28095,51396],[-37,183],[103,44],[-12,296],[65,214],[138,40],[117,371],[106,310],[-102,141],[52,343],[-62,540],[59,155],[-44,500],[-112,315]],[[28366,54848],[36,287],[89,-43],[52,176],[-64,348],[34,86]],[[28513,55702],[143,-18],[209,412],[114,63],[3,195],[51,500],[159,274],[175,11],[22,123],[218,-49],[218,298],[109,132],[134,285],[98,-36],[73,-156],[-54,-199]],[[30185,57537],[-178,-99],[-71,-295],[-107,-169],[-81,-220],[-34,-422],[-77,-345],[144,-40],[35,-271],[62,-130],[21,-238],[-33,-219],[10,-123],[69,-49],[66,-207],[357,57],[161,-75],[196,-508],[112,63],[200,-32],[158,68],[99,-102],[-50,-318],[-62,-199],[-22,-423],[56,-393],[79,-175],[9,-133],[-140,-294],[100,-130],[74,-207],[85,-589]],[[28366,54848],[-93,170],[-59,319],[68,158],[-70,40],[-52,196],[-138,164],[-122,-38],[-56,-205],[-112,-149],[-61,-20],[-27,-123],[132,-321],[-75,-76],[-40,-87],[-130,-30],[-48,353],[-36,-101],[-92,35],[-56,238],[-114,39],[-72,69],[-119,-1],[-8,-128],[-32,89]],[[26954,55439],[14,117],[23,120],[-10,107],[41,70],[-58,88],[-1,238],[107,53]],[[27070,56232],[100,-212],[-6,-126],[111,-26],[26,48],[77,-145],[136,42],[119,150],[168,119],[95,176],[153,-34],[-10,-58],[155,-21],[124,-102],[90,-177],[105,-164]],[[26954,55439],[-151,131],[-56,124],[32,103],[-11,130],[-77,142],[-109,116],[-95,76],[-19,173],[-73,105],[18,-172],[-55,-141],[-64,164],[-89,58],[-38,120],[2,179],[36,187],[-78,83],[64,114]],[[26191,57131],[42,76],[183,-156],[63,77],[89,-50],[46,-121],[82,-40],[66,126]],[[26762,57043],[70,-321],[108,-238],[130,-252]],[[26191,57131],[-96,186],[-130,238],[-61,200],[-117,185],[-140,267],[31,91],[46,-88],[21,41]],[[25745,58251],[86,25],[35,135],[41,5],[-6,290],[65,14],[58,-4],[60,158],[82,-120],[29,74],[51,70],[97,163],[4,121],[27,-5],[36,141],[29,17],[47,-90],[56,-27],[61,76],[70,0],[97,77],[38,81],[95,-12]],[[26903,59440],[-24,-57],[-14,-132],[29,-216],[-64,-202],[-30,-237],[-9,-261],[15,-152],[7,-266],[-43,-58],[-26,-253],[19,-156],[-56,-151],[12,-159],[43,-97]],[[25745,58251],[-48,185],[-84,51]],[[25613,58487],[19,237],[-38,64],[-57,42],[-122,-70],[-10,79],[-84,95],[-60,118],[-82,50]],[[25179,59102],[58,150],[-22,116],[20,113],[131,166],[127,225]],[[25493,59872],[29,-23],[61,104],[79,8],[26,-48],[43,29],[129,-53],[128,15],[90,66],[32,66],[89,-31],[66,-40],[73,14],[55,51],[127,-82],[44,-13],[85,-110],[80,-132],[101,-91],[73,-162]],[[25613,58487],[-31,-139],[-161,9],[-100,57],[-115,117],[-154,37],[-79,127]],[[24973,58695],[9,86],[95,149],[52,66],[-15,69],[65,37]],[[25238,61101],[-2,-468],[-22,-667],[83,0]],[[25297,59966],[90,-107],[24,88],[82,-75]],[[24973,58695],[-142,103],[-174,11],[-127,117],[-149,244]],[[25472,61510],[1,-87],[53,-3],[-5,-160],[-45,-256],[24,-91],[-29,-212],[18,-56],[-32,-299],[-55,-156],[-50,-19],[-55,-205]],[[30185,57537],[-8,-139],[-163,-69],[91,-268],[-3,-309],[-123,-344],[105,-468],[120,38],[62,427],[-86,208],[-14,447],[346,241],[-38,278],[97,186],[100,-415],[195,-9],[180,-330],[11,-195],[249,-6],[297,61],[159,-264],[213,-74],[155,185],[4,149],[344,35],[333,9],[-236,-175],[95,-279],[222,-44],[210,-291],[45,-473],[144,13],[109,-139]],[[33400,55523],[-220,-347],[-24,-215],[95,-220],[-69,-110],[-171,-95],[5,-273],[-75,-163],[188,-448]],[[33400,55523],[183,-217],[171,-385],[8,-304],[105,-14],[149,-289],[109,-205]],[[34125,54109],[-44,-532],[-169,-154],[15,-139],[-51,-305],[123,-429],[89,-1],[37,-333],[169,-514]],[[34125,54109],[333,-119],[30,107],[225,43],[298,-159]],[[35011,53981],[-144,-508],[22,-404],[109,-351],[-49,-254],[-24,-270],[-71,-248]],[[35011,53981],[95,-65],[204,-140],[294,-499],[46,-242]],[[51718,79804],[131,-155],[400,-109],[-140,-404],[-35,-421]],[[52074,78715],[-77,-101],[-126,54],[9,-150],[-203,-332],[-5,-267],[133,92],[95,-259]],[[51900,77752],[-11,-167],[82,-222],[-97,-180],[72,-457],[151,-75],[-32,-256]],[[52065,76395],[-252,-334],[-548,160],[-404,-192],[-32,-355]],[[50829,75674],[-322,-77],[-313,267],[-101,-127],[-511,268],[-111,230]],[[49471,76235],[144,354],[53,1177],[-287,620],[-205,299],[-424,227],[-28,431],[360,129],[466,-152],[-88,669],[263,-254],[646,461],[84,484],[243,119]],[[50698,80799],[40,-207],[129,-10],[129,-237],[194,-279],[143,46],[243,-269]],[[51576,79843],[62,-52],[80,13]],[[52429,75765],[179,226],[47,-507],[-92,-456],[-126,120],[-64,398],[56,219]],[[27693,48568],[148,442],[-60,258],[-106,-275],[-166,259],[56,167],[-47,536],[97,89],[52,368],[105,381],[-20,241],[153,126],[190,236]],[[31588,61519],[142,-52],[50,-118],[-71,-149],[-209,4],[-163,-21],[-16,253],[40,86],[227,-3]],[[28453,61504],[187,-53],[147,-142],[46,-161],[-195,-11],[-84,-99],[-156,95],[-159,215],[34,135],[116,41],[64,-20]],[[27147,64280],[240,-42],[219,-7],[261,-201],[110,-216],[260,66],[98,-138],[235,-366],[173,-267],[92,8],[165,-120],[-20,-167],[205,-24],[210,-242],[-33,-138],[-185,-75],[-187,-29],[-191,46],[-398,-57],[186,329],[-113,154],[-179,39],[-96,171],[-66,336],[-157,-23],[-259,159],[-83,124],[-362,91],[-97,115],[104,148],[-273,30],[-199,-307],[-115,-8],[-40,-144],[-138,-65],[-118,56],[146,183],[60,213],[126,131],[142,116],[210,56],[67,65]],[[58175,37528],[-177,267],[-215,90],[-82,375],[0,208],[-119,64],[-315,649],[-87,342],[-56,105],[-107,473]],[[57017,40101],[311,-65],[90,-68],[94,13],[154,383],[241,486],[100,46],[33,205],[159,235],[210,81]],[[58409,41417],[18,-220],[232,12],[128,-125],[60,-146],[132,-43],[145,-190],[0,-748],[-54,-409],[-12,-442],[45,-175],[-31,-348],[-42,-53],[-74,-426],[-292,-671]],[[55526,35946],[0,1725],[274,20],[8,2105],[207,19],[428,207],[106,-243],[177,231],[85,2],[156,133]],[[56967,40145],[50,-44]],[[54540,33696],[-207,446],[-108,432],[-62,575],[-68,428],[-93,910],[-7,707],[-35,322],[-108,243],[-144,489],[-146,708],[-60,371],[-226,577],[-17,453]],[[53259,40357],[134,113],[166,100],[180,-17],[166,-267],[42,41],[1126,26],[192,-284],[673,-83],[510,241]],[[56448,40227],[228,134],[180,-34],[109,-133],[2,-49]],[[45357,58612],[-115,460],[-138,210],[122,112],[134,415],[66,304]],[[45426,60113],[96,189],[138,-51],[135,129],[155,6],[133,-173],[184,-157],[168,-435],[184,-405]],[[46619,59216],[13,-368],[54,-338],[104,-166],[24,-229],[-13,-184]],[[46801,57931],[-40,-33],[-151,47],[-21,-66],[-61,-13],[-200,144],[-134,6]],[[46194,58016],[-513,25],[-75,-67],[-92,19],[-147,-96]],[[45367,57897],[-46,453]],[[45321,58350],[253,-13],[67,83],[50,5],[103,136],[119,-124],[121,-11],[120,133],[-56,170],[-92,-99],[-86,3],[-110,145],[-88,-9],[-63,-140],[-302,-17]],[[46619,59216],[93,107],[47,348],[88,14],[194,-165],[157,117],[107,-39],[42,131],[1114,9],[62,414],[-48,73],[-134,2550],[-134,2550],[425,10]],[[48632,65335],[937,-1289],[937,-1289],[66,-277],[173,-169],[129,-96],[3,-376],[308,58]],[[51185,61897],[1,-1361],[-152,-394],[-24,-364],[-247,-94],[-379,-51],[-102,-210],[-178,-23]],[[50104,59400],[-178,-3],[-70,114],[-153,-84],[-259,-246],[-53,-184],[-216,-265],[-38,-152],[-116,-120],[-134,79],[-76,-144],[-41,-405],[-221,-490],[7,-200],[-76,-250],[18,-343]],[[48498,56707],[-114,-88],[-65,-74],[-43,253],[-80,-67],[-48,11],[-51,-172],[-215,5],[-77,89],[-36,-54]],[[47769,56610],[-85,170],[15,176],[-35,69],[-59,-58],[11,192],[57,152],[-114,248],[-33,163],[-62,130],[-55,15],[-67,-83],[-90,-79],[-76,-128],[-119,48],[-77,150],[-46,19],[-73,-78],[-44,-1],[-16,216]],[[47587,66766],[1045,-1431]],[[45426,60113],[-24,318],[78,291],[34,557],[-30,583],[-34,294],[28,295],[-72,281],[-146,255]],[[50747,54278],[-229,-69]],[[50518,54209],[-69,407],[13,1357],[-56,122],[-11,290],[-96,207],[-85,174],[35,311]],[[50249,57077],[96,67],[56,258],[136,56],[61,176]],[[50598,57634],[93,173],[100,2],[212,-340]],[[51003,57469],[-11,-197],[62,-350],[-54,-238],[29,-159],[-135,-366],[-86,-181],[-52,-372],[7,-376],[-16,-952]],[[54026,58177],[-78,-34],[-9,-188]],[[53939,57955],[-52,-13],[-188,647],[-65,24],[-217,-331],[-215,173],[-150,34],[-80,-83],[-163,18],[-164,-252],[-141,-14],[-337,305],[-131,-145],[-142,10],[-104,223],[-279,221],[-298,-70],[-72,-128],[-39,-340],[-80,-238],[-19,-527]],[[50598,57634],[6,405],[-320,134],[-9,286],[-156,386],[-37,269],[22,286]],[[51185,61897],[392,263],[804,1161],[952,1126]],[[53333,64447],[439,-255],[156,-324],[197,220]],[[53939,57955],[110,-235],[-31,-107],[-14,-196],[-234,-457],[-74,-377],[-39,-307],[-59,-132],[-56,-414],[-148,-243],[-43,-299],[-63,-238],[-26,-246],[-191,-199],[-156,243],[-105,-10],[-165,-345],[-81,-6],[-132,-570],[-71,-418]],[[52361,53399],[-289,-213],[-105,31],[-107,-132],[-222,13],[-149,370],[-91,427],[-197,389],[-209,-7],[-245,1]],[[54244,54965],[-140,-599],[-67,-107],[-21,-458],[28,-249],[-23,-176],[132,-309],[23,-212],[103,-305],[127,-190],[12,-269],[29,-172]],[[54447,51919],[-20,-319],[-220,140],[-225,156],[-350,23]],[[53632,51919],[-35,32],[-164,-76],[-169,79],[-132,-38]],[[53132,51916],[-452,13]],[[52680,51929],[40,466],[-108,391],[-127,100],[-56,265],[-72,85],[4,163]],[[50518,54209],[-224,-126]],[[50294,54083],[-62,207],[-74,375],[-22,294],[61,532],[-69,215],[-27,466],[1,429],[-116,305],[20,184]],[[50006,57090],[243,-13]],[[50294,54083],[-436,-346],[-154,-203],[-250,-171],[-248,168]],[[49206,53531],[13,233],[-121,509],[73,667],[117,496],[-74,841]],[[49214,56277],[-38,444],[7,336],[482,27],[123,-43],[90,96],[128,-47]],[[48498,56707],[125,-129],[49,-195],[125,-125],[97,149],[130,22],[190,-152]],[[49206,53531],[-126,-7],[-194,116],[-178,-7],[-329,-103],[-193,-170],[-275,-217],[-54,15]],[[47857,53158],[22,487],[26,74],[-8,233],[-118,247],[-88,40],[-81,162],[60,262],[-28,286],[13,172]],[[47655,55121],[44,0],[17,258],[-22,114],[27,82],[103,71],[-69,473],[-64,245],[23,200],[55,46]],[[47655,55121],[-78,15],[-57,-238],[-78,3],[-55,126],[19,237],[-116,362],[-73,-67],[-59,-13]],[[47158,55546],[-77,-34],[3,217],[-44,155],[9,171],[-60,249],[-78,211],[-222,1],[-65,-112],[-76,-13],[-48,-128],[-32,-163],[-148,-260]],[[46320,55840],[-122,349],[-108,232],[-71,76],[-69,118],[-32,261],[-41,130],[-80,97]],[[45797,57103],[123,288],[84,-11],[73,99],[61,1],[44,78],[-24,196],[31,62],[5,200]],[[45797,57103],[-149,247],[-117,39],[-63,166],[1,90],[-84,125],[-18,127]],[[47857,53158],[-73,-5],[-286,282],[-252,449],[-237,324],[-187,381]],[[46822,54589],[66,189],[15,172],[126,320],[129,276]],[[46822,54589],[-75,44],[-200,238],[-144,316],[-49,216],[-34,437]],[[55125,52650],[-178,33],[-188,99],[-166,-313],[-146,-550]],[[56824,55442],[152,-239],[2,-192],[187,-308],[116,-255],[70,-355],[208,-234],[44,-187]],[[53609,47755],[-104,203],[-84,-100],[-112,-255]],[[53309,47603],[-228,626]],[[53081,48229],[212,326],[-105,391],[95,148],[187,73],[23,261],[148,-283],[245,-25],[85,279],[36,393],[-31,461],[-131,350],[120,684],[-69,117],[-207,-48],[-78,305],[21,258]],[[53081,48229],[-285,596],[-184,488],[-169,610],[9,196],[61,189],[67,430],[56,438]],[[52636,51176],[94,35],[404,-6],[-2,711]],[[52636,51176],[-52,90],[96,663]],[[59099,45126],[131,-264],[71,-501],[-47,-160],[-56,-479],[53,-490],[-87,-205],[-85,-549],[147,-153]],[[59226,42325],[-843,-487],[26,-421]],[[56448,40227],[-181,369],[-188,483],[13,1880],[579,-7],[-24,203],[41,222],[-49,277],[32,286],[-29,184]],[[59599,43773],[-77,-449],[77,-768],[97,9],[100,-191],[116,-427],[24,-760],[-120,-124],[-85,-410],[-181,365],[-21,417],[59,274],[-16,237],[-110,149],[-77,-54],[-159,284]],[[61198,44484],[45,-265],[-11,-588],[34,-519],[11,-923],[49,-290],[-83,-422],[-108,-410],[-177,-366],[-254,-225],[-313,-287],[-313,-634],[-107,-108],[-194,-420],[-115,-136],[-23,-421],[132,-448],[54,-346],[4,-177],[49,29],[-8,-579],[-45,-275],[65,-101],[-41,-245],[-116,-211],[-229,-199],[-334,-320],[-122,-219],[24,-248],[71,-40],[-24,-311]],[[58908,34785],[-24,261],[-41,265]],[[53383,47159],[-74,444]],[[53259,40357],[-26,372],[38,519],[96,541],[15,254],[90,532],[66,243],[159,386],[90,263],[29,438],[-15,335],[-83,211],[-74,358],[-68,355],[15,122],[85,235],[-84,570],[-57,396],[-139,374],[26,115]],[[58062,48902],[169,-46],[85,336],[147,-38]],[[59922,69905],[-49,-186]],[[59873,69719],[-100,82],[-58,-394],[69,-66],[-71,-81],[-12,-156],[131,80]],[[59832,69184],[7,-230],[-139,-944]],[[59700,68010],[-27,153],[-155,862]],[[59518,69025],[80,194],[-19,34],[74,276],[56,446],[40,149],[8,6]],[[59757,70130],[93,-1],[25,104],[75,8]],[[59950,70241],[4,-242],[-38,-90],[6,-4]],[[59757,70130],[99,482],[138,416],[5,21]],[[59999,71049],[125,-31],[45,-231],[-151,-223],[-68,-323]],[[63761,43212],[74,-251],[69,-390],[45,-711],[72,-276],[-28,-284],[-49,-174],[-94,347],[-53,-175],[53,-438],[-24,-250],[-77,-137],[-18,-500],[-109,-689],[-137,-814],[-172,-1120],[-106,-821],[-125,-685],[-226,-140],[-243,-250],[-160,151],[-220,211],[-77,312],[-18,524],[-98,471],[-26,425],[50,426],[128,102],[1,197],[133,447],[25,377],[-65,280],[-52,372],[-23,544],[97,331],[38,375],[138,22],[155,121],[103,107],[122,7],[158,337],[229,364],[83,297],[-38,253],[118,-71],[153,410],[6,356],[92,264],[96,-254]],[[59873,69719],[0,-362],[-41,-173]],[[45321,58350],[36,262]],[[52633,68486],[-118,1061],[-171,238],[-3,143],[-227,352],[-24,445],[171,330],[65,487],[-44,563],[57,303]],[[52339,72408],[302,239],[195,-71],[-9,-299],[236,217],[20,-113],[-139,-290],[-2,-273],[96,-147],[-36,-511],[-183,-297],[53,-322],[143,-10],[70,-281],[106,-92]],[[53191,70158],[-16,-454],[-135,-170],[-86,-189],[-191,-228],[30,-244],[-24,-250],[-136,-137]],[[47592,66920],[-2,700],[449,436],[277,90],[227,159],[107,295],[324,234],[12,438],[161,51],[126,219],[363,99],[51,230],[-73,125],[-96,624],[-17,359],[-104,379]],[[49397,71358],[267,323],[300,102],[175,244],[268,180],[471,105],[459,48],[140,-87],[262,232],[297,5],[113,-137],[190,35]],[[52633,68486],[90,-522],[15,-274],[-49,-482],[21,-270],[-36,-323],[24,-371],[-110,-247],[164,-431],[11,-253],[99,-330],[130,109],[219,-275],[122,-370]],[[59922,69905],[309,-234],[544,630]],[[60775,70301],[112,-720]],[[60887,69581],[-53,-89],[-556,-296],[277,-591],[-92,-101],[-46,-197],[-212,-82],[-66,-213],[-120,-182],[-310,94]],[[59709,67924],[-9,86]],[[64327,64904],[49,29],[11,-162],[217,93],[230,-15],[168,-18],[190,400],[207,379],[176,364]],[[65575,65974],[52,-202]],[[65627,65772],[38,-466]],[[65665,65306],[-142,-3],[-23,-384],[50,-82],[-126,-117],[-1,-241],[-81,-245],[-7,-238]],[[65335,63996],[-56,-125],[-835,298],[-106,599],[-11,136]],[[64113,65205],[-18,430],[75,310],[76,64],[84,-185],[5,-346],[-61,-348]],[[64274,65130],[-77,-42],[-84,117]],[[63326,68290],[58,-261],[-25,-135],[89,-445]],[[63448,67449],[-196,-16],[-69,282],[-248,57]],[[62935,67772],[204,567],[187,-49]],[[60775,70301],[615,614],[105,715],[-26,431],[152,146],[142,369]],[[61763,72576],[119,92],[324,-77],[97,-150],[133,100]],[[62436,72541],[180,-705],[182,-177],[21,-345],[-139,-204],[-65,-461],[193,-562],[340,-324],[143,-449],[-46,-428],[89,0],[3,-314],[153,-311]],[[63490,68261],[-164,29]],[[62935,67772],[-516,47],[-784,1188],[-413,414],[-335,160]],[[65665,65306],[125,-404],[155,-214],[203,-78],[165,-107],[125,-339],[75,-196],[100,-75],[-1,-132],[-101,-352],[-44,-166],[-117,-189],[-104,-404],[-126,31],[-58,-141],[-44,-300],[34,-395],[-26,-72],[-128,2],[-174,-221],[-27,-288],[-63,-125],[-173,5],[-109,-149],[1,-238],[-134,-165],[-153,56],[-186,-199],[-128,-34]],[[64752,60417],[-91,413],[-217,975]],[[64444,61805],[833,591],[185,1182],[-127,418]],[[65575,65974],[80,201],[35,-51],[-26,-244],[-37,-108]],[[96448,41190],[175,-339],[-92,-78],[-93,259],[10,158]],[[96330,41322],[-39,163],[-6,453],[133,-182],[45,-476],[-75,74],[-58,-32]],[[78495,57780],[-66,713],[178,492],[359,112],[261,-84]],[[79227,59013],[229,-232],[126,407],[246,-217]],[[79828,58971],[64,-394],[-34,-708],[-467,-455],[122,-358],[-292,-43],[-240,-238]],[[78981,56775],[-233,87],[-112,307],[-141,611]],[[78495,57780],[-249,271],[-238,-11],[41,464],[-245,-3],[-22,-650],[-150,-863],[-90,-522],[19,-428],[181,-18],[113,-539],[50,-512],[155,-338],[168,-69],[144,-306]],[[78372,54256],[-91,-243],[-183,-71],[-22,304],[-227,258],[-48,-105]],[[77801,54399],[-110,227],[-47,292],[-148,334],[-135,280],[-45,-347],[-53,328],[30,369],[82,566]],[[77375,56448],[135,607],[152,551],[-108,539],[4,274],[-32,330],[-185,470],[-66,296],[96,109],[101,514],[-113,390],[-177,431],[-134,519],[117,107],[127,639],[196,26],[162,256],[159,137]],[[77809,62643],[120,-182],[16,-355],[188,-27],[-68,-623],[6,-530],[293,353],[83,-104],[163,17],[56,205],[210,-40],[211,-480],[18,-583],[224,-515],[-12,-500],[-90,-266]],[[77809,62643],[59,218],[237,384]],[[78105,63245],[25,-139],[148,-16],[-42,676],[144,86]],[[78380,63852],[162,-466],[125,-537],[342,-5],[108,-515],[-178,-155],[-80,-212],[333,-353],[231,-699],[175,-520],[210,-411],[70,-418],[-50,-590]],[[77375,56448],[-27,439],[86,452],[-94,350],[23,644],[-113,306],[-90,707],[-50,746],[-121,490],[-183,-297],[-315,-421],[-156,53],[-172,138],[96,732],[-58,554],[-218,681],[34,213],[-163,76],[-197,481]],[[75657,62792],[-18,476],[97,-90],[6,424]],[[75742,63602],[137,140],[-30,251],[63,201],[11,612],[217,-135],[124,487],[14,288],[153,496],[-8,338],[359,408],[199,-107],[-23,364],[97,108],[-20,224]],[[77035,67277],[162,44],[93,-348],[121,-141],[8,-452],[-11,-487],[-263,-493],[-33,-701],[293,98],[66,-544],[176,-115],[-81,-490],[206,-222],[121,-109],[203,172],[9,-244]],[[78380,63852],[149,145],[221,-3],[271,68],[236,315],[134,-222],[254,-108],[-44,-340],[132,-240],[280,-154]],[[80013,63313],[-371,-505],[-231,-558],[-61,-410],[212,-623],[260,-772],[252,-365],[169,-475],[127,-1093],[-37,-1039],[-232,-389],[-318,-381],[-227,-492],[-346,-550],[-101,378],[78,401],[-206,335]],[[86327,75524],[0,0]],[[86327,75524],[-106,36],[-120,-200],[-83,-202],[10,-424],[-143,-130],[-50,-105],[-104,-174],[-185,-97],[-121,-159],[-9,-256],[-32,-65],[111,-96],[157,-259]],[[85652,73393],[-40,-143],[-118,-39],[-197,-29],[-108,-266],[-124,21],[-17,-54]],[[85048,72883],[-135,112],[-34,-111],[-81,-49],[-10,112],[-72,54],[-75,94],[76,260],[66,69],[-25,108],[71,319],[-18,96],[-163,65],[-131,158]],[[84517,74170],[227,379],[306,318],[191,419],[131,-185],[241,-22],[-44,312],[429,254],[111,331],[179,-348]],[[85652,73393],[240,-697],[68,-383],[3,-681],[-105,-325],[-252,-113],[-222,-245],[-250,-51],[-31,322],[51,443],[-122,615],[206,99],[-190,506]],[[82410,80055],[-135,-446],[-197,-590],[72,-241],[157,74],[274,-92],[214,219],[223,-189],[251,-413],[-30,-210],[-219,66],[-404,-78],[-195,-168],[-204,-391],[-423,-229],[-277,-313],[-286,120],[-156,53],[-146,-381],[89,-227],[45,-195],[-194,-199],[-200,-316],[-324,-208],[-417,-22],[-448,-205],[-324,-318],[-123,184],[-336,-1],[-411,359],[-274,88],[-369,-82],[-574,133],[-306,-14],[-163,351],[-127,544],[-171,66],[-336,368],[-374,83],[-330,101],[-100,256],[107,690],[-192,476],[-396,222],[-233,313],[-73,413]],[[75742,63602],[-147,937],[-76,-2],[-46,-377],[-152,306],[86,336],[124,34],[128,500],[-160,101],[-257,-8],[-265,81],[-24,410],[-133,30],[-220,255],[-98,-401],[200,-313],[-173,-220],[-62,-215],[171,-159],[-47,-356],[96,-444],[43,-486]],[[74730,63611],[-39,-216],[-189,7],[-343,-122],[16,-445],[-148,-349],[-400,-398],[-311,-695],[-209,-373],[-276,-387],[-1,-271],[-138,-146],[-251,-212],[-129,-31],[-84,-450],[58,-769],[15,-490],[-118,-561],[-1,-1004],[-144,-29],[-126,-450],[84,-195],[-253,-168],[-93,-401],[-112,-170],[-263,552],[-128,827],[-107,596],[-97,279],[-148,568],[-69,739],[-48,369],[-253,811],[-115,1145],[-83,756],[1,716],[-54,553],[-404,-353],[-196,70],[-362,716],[133,214],[-82,232],[-326,501]],[[68937,64577],[185,395],[612,-2],[-56,507],[-156,300],[-31,455],[-182,265],[306,619],[323,-45],[290,620],[174,599],[270,593],[-4,421],[236,342],[-224,292],[-96,400],[-99,517],[137,255],[421,-144],[310,88],[268,496]],[[71621,71550],[298,-692],[-28,-482],[111,-303],[-9,-301],[-200,79],[78,-651],[273,-374],[386,-413]],[[72530,68413],[-176,-268],[-108,-553],[269,-224],[262,-289],[362,-332],[381,-76],[160,-301],[215,-56],[334,-138],[231,10],[32,234],[-36,375],[21,255]],[[74477,67050],[170,124],[23,-465]],[[74670,66709],[6,-119],[252,-224],[175,92],[234,-39],[227,17],[20,363],[-113,189]],[[75471,66988],[224,74],[252,439],[321,376],[233,-145],[198,249],[130,-367],[-94,-248],[300,-89]],[[75657,62792],[-79,308],[-16,301],[-53,285],[-116,344],[-256,23],[25,-243],[-87,-329],[-118,120],[-41,-108],[-78,65],[-108,53]],[[74670,66709],[184,439],[150,150],[198,-137],[147,-14],[122,-159]],[[72530,68413],[115,141],[223,-182],[280,-385],[157,-84],[93,-284],[216,-117],[225,-259],[314,-136],[324,-57]],[[68937,64577],[-203,150],[-83,424],[-215,450],[-512,-111],[-451,-11],[-391,-83]],[[67082,65396],[105,687],[400,305],[-23,272],[-133,96],[-7,520],[-266,260],[-112,357],[-137,310]],[[66909,68203],[465,-301],[278,88],[166,-75],[56,129],[194,-52],[361,246],[10,503],[154,334],[207,-1],[31,166],[212,77],[103,-55],[108,166],[-15,355],[118,356],[177,150],[-110,390],[265,-18],[76,213],[-12,227],[139,248],[-32,294],[-66,250],[163,258],[298,124],[319,68],[141,109],[162,67]],[[70877,72519],[205,-276],[82,-454],[457,-239]],[[68841,72526],[85,-72],[201,189],[93,-114],[90,271],[166,-12],[43,86],[29,239],[120,205],[150,-134],[-30,-181],[84,-28],[-26,-496],[110,-194],[97,125],[123,58],[173,265],[192,-44],[286,-1]],[[70827,72688],[50,-169]],[[66909,68203],[252,536],[-23,380],[-210,100],[-22,375],[-91,472],[119,323],[-121,87],[76,430],[113,736]],[[67002,71642],[284,-224],[209,79],[58,268],[219,89],[157,180],[55,472],[234,114],[44,211],[131,-158],[84,-19]],[[69725,74357],[-101,-182],[-303,98],[-26,-340],[301,46],[343,-192],[526,89]],[[70465,73876],[70,-546],[91,59],[169,-134],[-10,-230],[42,-337]],[[72294,75601],[-39,-134],[-438,-320],[-99,-234],[-356,-70],[-105,-378],[-294,80],[-192,-116],[-266,-279],[39,-138],[-79,-136]],[[67002,71642],[-24,498],[-207,21],[-318,523],[-221,65],[-308,299],[-197,55],[-122,-110],[-186,17],[-197,-338],[-244,-114]],[[64978,72558],[-52,417],[40,618],[-216,200],[71,405],[-184,34],[61,498],[262,-145],[244,189],[-202,355],[-80,338],[-224,-151],[-28,-433],[-87,383]],[[62436,72541],[-152,473],[55,183],[-87,678],[190,168]],[[62442,74043],[44,-223],[141,-273],[190,-78]],[[62817,73469],[101,17]],[[62918,73486],[327,436],[104,44],[82,-174],[-95,-292],[173,-309],[69,29]],[[63578,73220],[88,-436],[263,-123],[193,-296],[395,-102],[434,156],[27,139]],[[67082,65396],[-523,179],[-303,136],[-313,76],[-118,725],[-133,105],[-214,-106],[-280,-286],[-339,196],[-281,454],[-267,168],[-186,561],[-205,788],[-149,-96],[-177,196],[-104,-231]],[[59999,71049],[-26,452],[68,243]],[[60041,71744],[74,129],[75,130],[15,329],[91,-115],[306,165],[147,-112],[229,2],[320,222],[149,-10],[316,92]],[[62817,73469],[-113,342],[1,91],[-123,-2],[-82,159],[-58,-16]],[[62442,74043],[-109,172],[-207,147],[27,288],[-47,208]],[[62106,74858],[386,92]],[[62492,74950],[57,-155],[106,-103],[-56,-148],[148,-202],[-78,-189],[118,-160],[124,-97],[7,-410]],[[55734,91409],[371,-289],[433,-402],[8,-910],[93,-230]],[[56639,89578],[-478,-167],[-269,-413],[43,-361],[-441,-475],[-537,-509],[-202,-832],[198,-416],[265,-328],[-255,-666],[-289,-138],[-106,-992],[-157,-554],[-337,57],[-158,-468],[-321,-27],[-89,558],[-232,671],[-211,835]],[[58829,81362],[-239,-35],[-85,-129],[-18,-298],[-111,57],[-250,-28],[-73,138],[-104,-103],[-105,86],[-218,12],[-310,141],[-281,47],[-215,-14],[-152,-160],[-133,-23]],[[56535,81053],[-6,263],[-85,274],[166,121],[2,235],[-77,225],[-12,261]],[[56523,82432],[268,-4],[302,223],[64,333],[228,190],[-26,264]],[[57359,83438],[169,100],[298,228]],[[60617,78409],[-222,-48],[-185,-191],[-260,-31],[-239,-220],[14,-317]],[[59287,77741],[-38,64],[-432,149],[-19,221],[-257,-73],[-103,-325],[-215,-437]],[[58223,77340],[-126,101],[-131,-95],[-124,109]],[[57842,77455],[70,64],[49,203],[76,188],[-20,106],[58,47],[27,-81],[164,-18],[74,44],[-52,60],[19,88],[-97,150],[-40,247],[-101,97],[20,200],[-125,159],[-115,22],[-204,184],[-185,-58],[-66,-87]],[[57394,79070],[-118,0],[-69,-139],[-205,-56],[-95,-91],[-129,144],[-178,3],[-172,65],[-120,-127]],[[56308,78869],[-19,159],[-155,161]],[[56134,79189],[55,238],[77,154]],[[56266,79581],[60,-35],[-71,266],[252,491],[138,69],[29,166],[-139,515]],[[56266,79581],[-264,227],[-200,-84],[-131,61],[-165,-127],[-140,210],[-114,-81],[-16,36]],[[55236,79823],[-127,291],[-207,36],[-26,185],[-191,66],[-41,-153],[-151,122],[17,163],[-207,51],[-132,191]],[[54171,80775],[-114,377],[22,204],[-69,316],[-101,210],[77,158],[-64,300]],[[53922,82340],[189,174],[434,273],[350,200],[277,-100],[21,-144],[268,-7]],[[56314,82678],[142,-64],[67,-182]],[[54716,79012],[-21,-241],[-156,-2],[53,-128],[-92,-380]],[[54500,78261],[-53,-100],[-243,-14],[-140,-134],[-229,45]],[[53835,78058],[-398,153],[-62,205],[-274,-102],[-32,-113],[-169,84]],[[52900,78285],[-142,16],[-125,108],[42,145],[-10,104]],[[52665,78658],[83,33],[141,-164],[39,156],[245,-25],[199,106],[133,-18],[87,-121],[26,100],[-40,385],[100,75],[98,272]],[[53776,79457],[206,-190],[157,242],[98,44],[215,-180],[131,30],[128,-111]],[[54711,79292],[-23,-75],[28,-205]],[[56308,78869],[-170,-123],[-131,-401],[-168,-401],[-223,-111]],[[55616,77833],[-173,26],[-213,-155]],[[55230,77704],[-104,-89],[-229,114],[-208,253],[-88,73]],[[54601,78055],[-54,200],[-47,6]],[[54716,79012],[141,-151],[103,-65],[233,73],[22,118],[111,18],[135,92],[30,-38],[130,74],[66,139],[91,36],[297,-180],[59,61]],[[57842,77455],[-50,270],[30,252],[-9,259],[-160,352],[-89,249],[-86,175],[-84,58]],[[58223,77340],[6,-152],[-135,-128],[-84,56],[-78,-713]],[[57932,76403],[-163,62],[-202,215],[-327,-138],[-138,-150],[-408,31],[-213,92],[-108,-43],[-80,243]],[[56293,76715],[-51,103],[65,99],[-69,74],[-87,-133],[-162,172],[-22,244],[-169,139],[-31,188],[-151,232]],[[55907,83187],[-59,497]],[[55848,83684],[318,181],[466,-38],[273,59],[39,-123],[148,-38],[267,-287]],[[55848,83684],[10,445],[136,371],[262,202],[221,-442],[223,12],[53,453]],[[56753,84725],[237,105],[121,-73],[239,-219],[229,-1]],[[56753,84725],[32,349],[-102,-75],[-176,210],[-24,340],[351,164],[350,86],[301,-97],[287,17]],[[54171,80775],[-124,-62],[-73,68],[-70,-113],[-200,-114],[-103,-147],[-202,-129],[49,-176],[30,-249],[141,-142],[157,-254]],[[52665,78658],[-298,181],[-57,-128],[-236,4]],[[51718,79804],[16,259],[-56,133]],[[51678,80196],[32,400]],[[51710,80596],[-47,619],[167,0],[70,222],[69,541],[-51,200]],[[51918,82178],[54,125],[232,32],[52,-130],[188,291],[-63,222],[-13,335]],[[52368,83053],[210,-78],[178,90]],[[52756,83065],[4,-228],[281,-138],[-3,-210],[283,111],[156,162],[313,-233],[132,-189]],[[57932,76403],[-144,-245],[-101,-422],[89,-337]],[[57776,75399],[-239,79],[-283,-186]],[[57254,75292],[-3,-294],[-252,-56],[-196,206],[-222,-162],[-206,17]],[[56375,75003],[-20,391],[-139,189]],[[56216,75583],[46,84],[-30,70],[47,188],[105,185],[-135,255],[-24,216],[68,134]],[[57302,71436],[-35,-175],[-400,-50],[3,98],[-339,115],[52,251],[152,-199],[216,34],[207,-42],[-7,-103],[151,71]],[[57254,75292],[135,-157],[-86,-369],[-66,-67]],[[57237,74699],[-169,17],[-145,56],[-336,-154],[192,-332],[-141,-96],[-154,-1],[-147,305],[-52,-130],[62,-353],[139,-277],[-105,-129],[155,-273],[137,-171],[4,-334],[-257,157],[82,-302],[-176,-62],[105,-521],[-184,-8],[-228,257],[-104,473],[-49,393],[-108,272],[-143,337],[-18,168]],[[55597,73991],[129,287],[16,192],[91,85],[5,155]],[[55838,74710],[182,53],[106,129],[150,-12],[46,103],[53,20]],[[60041,71744],[-102,268],[105,222],[-169,-51],[-233,136],[-191,-340],[-421,-66],[-225,317],[-300,20],[-64,-245],[-192,-70],[-268,314],[-303,-11],[-165,588],[-203,328],[135,459],[-176,283],[308,565],[428,23],[117,449],[529,-78],[334,383],[324,167],[459,13],[485,-417],[399,-228],[323,91],[239,-53],[328,309]],[[61542,75120],[296,28],[268,-290]],[[57776,75399],[33,-228],[243,-190],[-51,-145],[-330,-33],[-118,-182],[-232,-319],[-87,276],[3,121]],[[55597,73991],[-48,41],[-5,130],[-154,199],[-24,281],[23,403],[38,184],[-47,93]],[[55380,75322],[-18,188],[120,291],[18,-111],[75,52]],[[55575,75742],[59,-159],[66,-60],[19,-214]],[[55719,75309],[-35,-201],[39,-254],[115,-144]],[[55230,77704],[67,-229],[89,-169],[-107,-222]],[[55279,77084],[-126,131],[-192,-8],[-239,98],[-130,-13],[-60,-123],[-99,136],[-59,-245],[136,-277],[61,-183],[127,-221],[106,-130],[105,-247],[246,-224]],[[55155,75778],[-31,-100]],[[55124,75678],[-261,218],[-161,213],[-254,176],[-233,434],[56,45],[-127,248],[-5,200],[-179,93],[-85,-255],[-82,198],[6,205],[10,9]],[[53809,77462],[194,-20],[51,100],[94,-97],[109,-11],[-1,165],[97,60],[27,239],[221,157]],[[52900,78285],[-22,-242],[-122,-100],[-206,75],[-60,-239],[-132,-19],[-48,94],[-156,-200],[-134,-28],[-120,126]],[[51576,79843],[30,331],[72,22]],[[50698,80799],[222,117]],[[50920,80916],[204,-47],[257,123],[176,-258],[153,-138]],[[50920,80916],[143,162],[244,869],[380,248],[231,-17]],[[47490,75324],[101,150],[113,86],[70,-289],[164,0],[47,75],[162,-21],[78,-296],[-129,-160],[-3,-461],[-45,-86],[-11,-280],[-120,-48],[111,-355],[-77,-388],[96,-175],[-38,-161],[-103,-222],[23,-195]],[[47929,72498],[-112,-153],[-146,83],[-143,-65],[42,462],[-26,363],[-124,55],[-67,224],[22,386],[111,215],[20,239],[58,355],[-6,250],[-56,212],[-12,200]],[[47490,75324],[14,420],[-114,257],[393,426],[340,-106],[373,3],[296,-101],[230,31],[449,-19]],[[50829,75674],[15,-344],[-263,-393],[-356,-125],[-25,-199],[-171,-327],[-107,-481],[108,-338],[-160,-263],[-60,-384],[-210,-118],[-197,-454],[-352,-9],[-265,11],[-174,-209],[-106,-223],[-136,49],[-103,199],[-79,340],[-259,92]],[[48278,82406],[46,-422],[-210,-528],[-493,-349],[-393,89],[225,617],[-145,601],[378,463],[210,276]],[[47896,83153],[57,-317],[-57,-317],[172,9],[210,-122]],[[96049,38125],[228,-366],[144,-272],[-105,-142],[-153,160],[-199,266],[-179,313],[-184,416],[-38,201],[119,-9],[156,-201],[122,-200],[89,-166]],[[95032,44386],[78,-203],[-194,4],[-106,363],[166,-142],[56,-22]],[[94910,44908],[-42,-109],[-206,512],[-57,353],[94,0],[100,-473],[111,-283]],[[94680,44747],[-108,-14],[-170,60],[-58,91],[17,235],[183,-93],[91,-124],[45,-155]],[[94344,45841],[65,-187],[12,-119],[-218,251],[-152,212],[-104,197],[41,60],[128,-142],[228,-272]],[[93649,46431],[111,-193],[-56,-33],[-121,134],[-114,243],[14,99],[166,-250]],[[99134,26908],[-105,-319],[-138,-404],[-214,-236],[-48,155],[-116,85],[160,486],[-91,326],[-299,236],[8,214],[201,206],[47,455],[-13,382],[-113,396],[8,104],[-133,244],[-218,523],[-117,418],[104,46],[151,-328],[216,-153],[78,-526],[202,-622],[5,403],[126,-161],[41,-447],[224,-192],[188,-48],[158,226],[141,-69],[-67,-524],[-85,-345],[-212,12],[-74,-179],[26,-254],[-41,-110]],[[97129,24846],[238,310],[167,306],[123,441],[106,149],[41,330],[195,273],[61,-251],[63,-244],[198,239],[80,-249],[0,-249],[-103,-274],[-182,-435],[-142,-238],[103,-284],[-214,-7],[-238,-223],[-75,-387],[-157,-597],[-219,-264],[-138,-169],[-256,13],[-180,194],[-302,42],[-46,217],[149,438],[349,583],[179,111],[200,225]],[[91024,26469],[166,-39],[20,-702],[-95,-203],[-29,-476],[-97,162],[-193,-412],[-57,32],[-171,19],[-171,505],[-38,390],[-160,515],[7,271],[181,-52],[269,-204],[151,81],[217,113]],[[85040,31546],[-294,-303],[-241,-137],[-53,-309],[-103,-240],[-236,-15],[-174,-52],[-246,107],[-199,-64],[-191,-27],[-165,-315],[-81,26],[-140,-167],[-133,-187],[-203,23],[-186,0],[-295,377],[-149,113],[6,338],[138,81],[47,134],[-10,212],[34,411],[-31,350],[-147,598],[-45,337],[12,336],[-111,385],[-7,174],[-123,235],[-35,463],[-158,467],[-39,252],[122,-255],[-93,548],[137,-171],[83,-229],[-5,303],[-138,465],[-26,186],[-65,177],[31,341],[56,146],[38,295],[-29,346],[114,425],[21,-450],[118,406],[225,198],[136,252],[212,217],[126,46],[77,-73],[219,220],[168,66],[42,129],[74,54],[153,-14],[292,173],[151,262],[71,316],[163,300],[13,236],[7,321],[194,502],[117,-510],[119,118],[-99,279],[87,287],[122,-128],[34,449],[152,291],[67,233],[140,101],[4,165],[122,-69],[5,148],[122,85],[134,80],[205,-271],[155,-350],[173,-4],[177,-56],[-59,325],[133,473],[126,155],[-44,147],[121,338],[168,208],[142,-70],[234,111],[-5,302],[-204,195],[148,86],[184,-147],[148,-242],[234,-151],[79,60],[172,-182],[162,169],[105,-51],[65,113],[127,-292],[-74,-316],[-105,-239],[-96,-20],[32,-236],[-81,-295],[-99,-291],[20,-166],[221,-327],[214,-189],[143,-204],[201,-350],[78,1],[145,-151],[43,-183],[265,-200],[183,202],[55,317],[56,262],[34,324],[85,470],[-39,286],[20,171],[-32,339],[37,445],[53,120],[-43,197],[67,313],[52,325],[7,168],[104,222],[78,-289],[19,-371],[70,-71],[11,-249],[101,-300],[21,-335],[-10,-214],[100,-464],[179,223],[92,-250],[133,-231],[-29,-262],[60,-506],[42,-295],[70,-72],[75,-505],[-27,-307],[90,-400],[301,-309],[197,-281],[186,-257],[-37,-143],[159,-371],[108,-639],[111,130],[113,-256],[68,91],[48,-626],[197,-363],[129,-226],[217,-478],[78,-475],[7,-337],[-19,-365],[132,-502],[-16,-523],[-48,-274],[-75,-527],[6,-339],[-55,-423],[-123,-538],[-205,-290],[-102,-458],[-93,-292],[-82,-510],[-107,-294],[-70,-442],[-36,-407],[14,-187],[-159,-205],[-311,-22],[-257,-242],[-127,-229],[-168,-254],[-230,262],[-170,104],[43,308],[-152,-112],[-243,-428],[-240,160],[-158,94],[-159,42],[-269,171],[-179,364],[-52,449],[-64,298],[-137,240],[-267,71],[91,287],[-67,438],[-136,-408],[-247,-109],[146,327],[42,341],[107,289],[-22,438],[-226,-504],[-174,-202],[-106,-470],[-217,243],[9,313],[-174,429],[-147,221],[52,137],[-356,358],[-195,17],[-267,287],[-498,-56],[-359,-211],[-317,-197],[-265,39]],[[72718,55024],[-42,-615],[-116,-168],[-242,-135],[-132,470],[-49,849],[126,959],[192,-328],[129,-416],[134,-616]],[[80409,61331],[-228,183],[-8,509],[137,267],[304,166],[159,-14],[62,-226],[-122,-260],[-64,-341],[-240,-284]],[[84517,74170],[-388,-171],[-204,-277],[-300,-161],[148,274],[-58,230],[220,397],[-147,310],[-242,-209],[-314,-411],[-171,-381],[-272,-29],[-142,-275],[147,-400],[227,-97],[9,-265],[220,-173],[311,422],[247,-230],[179,-15],[45,-310],[-393,-165],[-130,-319],[-270,-296],[-142,-414],[299,-325],[109,-581],[169,-541],[189,-454],[-5,-439],[-174,-161],[66,-315],[164,-184],[-43,-481],[-71,-468],[-155,-53],[-203,-640],[-225,-775],[-258,-705],[-382,-545],[-386,-498],[-313,-68],[-170,-262],[-96,192],[-157,-294],[-388,-296],[-294,-90],[-95,-624],[-154,-35],[-73,429],[66,228],[-373,189],[-131,-96]],[[83826,64992],[-167,-947],[-119,-485],[-146,499],[-32,438],[163,581],[223,447],[127,-176],[-49,-357]],[[53835,78058],[-31,-291],[67,-251]],[[53871,77516],[-221,86],[-226,-210],[15,-293],[-34,-168],[91,-301],[261,-298],[140,-488],[309,-476],[217,3],[68,-130],[-78,-118],[249,-214],[204,-178],[238,-308],[29,-111],[-52,-211],[-154,276],[-242,97],[-116,-382],[200,-219],[-33,-309],[-116,-35],[-148,-506],[-116,-46],[1,181],[57,317],[60,126],[-108,342],[-85,298],[-115,74],[-82,255],[-179,107],[-120,238],[-206,38],[-217,267],[-254,384],[-189,340],[-86,585],[-138,68],[-226,195],[-128,-80],[-161,-274],[-115,-43]],[[54100,73116],[211,51],[-100,-465],[41,-183],[-58,-303],[-213,222],[-141,64],[-387,300],[38,304],[325,-54],[284,64]],[[52419,74744],[139,183],[166,-419],[-39,-782],[-126,38],[-113,-197],[-105,156],[-11,713],[-64,338],[153,-30]],[[52368,83053],[-113,328],[-8,604],[46,159],[80,177],[244,37],[98,163],[223,167],[-9,-304],[-82,-192],[33,-166],[151,-89],[-68,-223],[-83,64],[-200,-425],[76,-288]],[[53436,83731],[88,-296],[-166,-478],[-291,333],[-39,246],[408,195]],[[47896,83153],[233,24],[298,-365],[-149,-406]],[[49140,82132],[1,0],[40,343],[-186,364],[-4,8],[-337,104],[-66,160],[101,264],[-92,163],[-149,-279],[-17,569],[-140,301],[101,611],[216,480],[222,-47],[335,49],[-297,-639],[283,81],[304,-3],[-72,-481],[-250,-530],[287,-38],[22,-62],[248,-697],[190,-95],[171,-673],[79,-233],[337,-113],[-34,-378],[-142,-173],[111,-305],[-250,-310],[-371,6],[-473,-163],[-130,116],[-183,-276],[-257,67],[-195,-226],[-148,118],[407,621],[249,127],[-2,1],[-434,98],[-79,235],[291,183],[-152,319],[52,387],[413,-54]],[[45969,89843],[-64,-382],[314,-403],[-361,-451],[-801,-405],[-240,-107],[-365,87],[-775,187],[273,261],[-605,289],[492,114],[-12,174],[-583,137],[188,385],[421,87],[433,-400],[422,321],[349,-167],[453,315],[461,-42]],[[63495,75281],[146,-311],[141,-419],[130,-28],[85,-159],[-228,-47],[-49,-459],[-48,-207],[-101,-138],[7,-293]],[[62492,74950],[68,96],[207,-169],[149,-36],[38,70],[-136,319],[72,82]],[[61542,75120],[42,252],[-70,403],[-160,218],[-154,68],[-102,181]],[[83564,58086],[-142,450],[238,-22],[97,-213],[-74,-510],[-119,295]],[[84051,56477],[70,165],[30,367],[153,35],[-44,-398],[205,570],[-26,-563],[-100,-195],[-87,-373],[-87,-175],[-171,409],[57,158]],[[85104,55551],[28,-392],[16,-332],[-94,-540],[-102,602],[-130,-300],[89,-435],[-79,-277],[-327,343],[-78,428],[84,280],[-176,280],[-87,-245],[-131,23],[-205,-330],[-46,173],[109,498],[175,166],[151,223],[98,-268],[212,162],[45,264],[196,15],[-16,457],[225,-280],[23,-297],[20,-218]],[[82917,56084],[-369,-561],[136,414],[200,364],[167,409],[146,587],[49,-482],[-183,-325],[-146,-406]],[[83982,61347],[-46,-245],[95,-423],[-73,-491],[-164,-196],[-43,-476],[62,-471],[147,-65],[123,70],[347,-328],[-27,-321],[91,-142],[-29,-272],[-216,290],[-103,310],[-71,-217],[-177,354],[-253,-87],[-138,130],[14,244],[87,151],[-83,136],[-36,-213],[-137,340],[-41,257],[-11,566],[112,-195],[29,925],[90,535],[169,-1],[171,-168],[85,153],[26,-150]],[[83899,57324],[-43,282],[166,-183],[177,1],[-5,-247],[-129,-251],[-176,-178],[-10,275],[20,301]],[[84861,57766],[78,-660],[-214,157],[5,-199],[68,-364],[-132,-133],[-11,416],[-84,31],[-43,357],[163,-47],[-4,224],[-169,451],[266,-13],[77,-220]],[[78372,54256],[64,-56],[164,-356],[116,-396],[16,-398],[-29,-269],[27,-203],[20,-349],[98,-163],[109,-523],[-5,-199],[-197,-40],[-263,438],[-329,469],[-32,301],[-161,395],[-38,489],[-100,322],[30,431],[-61,250]],[[80461,51765],[204,-202],[214,110],[56,500],[119,112],[333,128],[199,467],[137,374]],[[81723,53254],[126,-307],[58,202],[133,-19],[16,377],[13,291]],[[82069,53798],[214,411],[140,462],[112,2],[143,-299],[13,-257],[183,-165],[231,-177],[-20,-232],[-186,-29],[50,-289],[-205,-201]],[[81723,53254],[110,221],[236,323]],[[53809,77462],[62,54]],[[57797,86326],[-504,-47],[-489,-216],[-452,-125],[-161,323],[-269,193],[62,582],[-135,533],[133,345],[252,371],[635,640],[185,124],[-28,250],[-387,279]],[[54711,79292],[39,130],[123,-10],[95,61],[7,55],[54,28],[18,134],[64,26],[43,106],[82,1]],[[60669,61213],[161,-684],[77,-542],[152,-288],[379,-558],[154,-336],[151,-341],[87,-203],[136,-178]],[[61966,58083],[-83,-144],[-119,51]],[[61764,57990],[-95,191],[-114,346],[-124,190],[-71,204],[-242,237],[-191,7],[-67,124],[-163,-139],[-168,268],[-87,-441],[-323,124]],[[89411,73729],[-256,-595],[4,-610],[-104,-472],[48,-296],[-145,-416],[-355,-278],[-488,-36],[-396,-675],[-186,227],[-12,442],[-483,-130],[-329,-279],[-325,-11],[282,-435],[-186,-1004],[-179,-248],[-135,229],[69,533],[-176,172],[-113,405],[263,182],[145,371],[280,306],[203,403],[553,177],[297,-121],[291,1050],[185,-282],[408,591],[158,229],[174,723],[-47,664],[117,374],[295,108],[152,-819],[-9,-479]],[[90169,76553],[197,250],[62,-663],[-412,-162],[-244,-587],[-436,404],[-152,-646],[-308,-9],[-39,587],[138,455],[296,33],[81,817],[83,460],[326,-615],[213,-198],[195,-126]],[[86769,70351],[154,352],[158,-68],[114,248],[204,-127],[35,-203],[-156,-357],[-114,189],[-143,-137],[-73,-346],[-181,168],[2,281]],[[64752,60417],[-201,-158],[-54,-263],[-6,-201],[-277,-249],[-444,-276],[-249,-417],[-122,-33],[-83,35],[-163,-245],[-177,-114],[-233,-30],[-70,-34],[-61,-156],[-73,-43],[-43,-150],[-137,13],[-89,-80],[-192,30],[-72,345],[8,323],[-46,174],[-54,437],[-80,243],[56,29],[-29,270],[34,114],[-12,257]],[[61883,60238],[121,189],[-28,249],[74,290],[114,-153],[75,53],[321,14],[50,-59],[269,-60],[106,30],[70,-197],[130,99],[199,620],[259,266],[801,226]],[[63448,67449],[109,-510],[137,-135],[47,-207],[190,-249],[16,-243],[-27,-197],[35,-199],[80,-165],[37,-194],[41,-145]],[[64274,65130],[53,-226]],[[61883,60238],[-37,252],[-83,178],[-22,236],[-143,212],[-148,495],[-79,482],[-192,406],[-124,97],[-184,563],[-32,411],[12,350],[-159,655],[-130,231],[-150,122],[-92,339],[15,133],[-77,306],[-81,132],[-108,440],[-170,476],[-141,406],[-139,-3],[44,325],[12,206],[34,236]],[[36483,4468],[141,0],[414,127],[419,-127],[342,-255],[120,-359],[33,-254],[11,-301],[-430,-186],[-452,-150],[-522,-139],[-582,-116],[-658,35],[-365,197],[49,243],[593,162],[239,197],[174,254],[126,220],[168,209],[180,243]],[[31586,3163],[625,-23],[599,-58],[207,243],[147,208],[288,-243],[-82,-301],[-81,-266],[-582,81],[-621,-35],[-348,197],[0,23],[-152,174]],[[29468,8472],[190,70],[321,-23],[82,301],[16,219],[-6,475],[158,278],[256,93],[147,-220],[65,-220],[120,-267],[92,-254],[76,-267],[33,-266],[-49,-231],[-76,-220],[-326,-81],[-311,-116],[-364,11],[136,232],[-327,-81],[-310,-81],[-212,174],[-16,243],[305,231]],[[21575,8103],[174,104],[353,-81],[403,-46],[305,-81],[304,69],[163,-335],[-217,46],[-337,-23],[-343,23],[-376,-35],[-283,116],[-146,243]],[[15938,7061],[60,197],[332,-104],[359,-93],[332,104],[-158,-208],[-261,-151],[-386,47],[-278,208]],[[14643,7177],[202,127],[277,-139],[425,-231],[-164,23],[-359,58],[-381,162]],[[4524,4144],[169,220],[517,-93],[277,-185],[212,-209],[76,-266],[-533,-81],[-364,208],[-163,209],[-11,35],[-180,162]],[[0,529],[16,-5],[245,344],[501,-185],[32,21],[294,188],[38,-7],[32,-4],[402,-246],[352,246],[63,34],[816,104],[265,-138],[130,-71],[419,-196],[789,-151],[625,-185],[1072,-139],[800,162],[1181,-116],[669,-185],[734,174],[773,162],[60,278],[-1094,23],[-898,139],[-234,231],[-745,128],[49,266],[103,243],[104,220],[-55,243],[-462,162],[-212,209],[-430,185],[675,-35],[642,93],[402,-197],[495,173],[457,220],[223,197],[-98,243],[-359,162],[-408,174],[-571,35],[-500,81],[-539,58],[-180,220],[-359,185],[-217,208],[-87,672],[136,-58],[250,-185],[457,58],[441,81],[228,-255],[441,58],[370,127],[348,162],[315,197],[419,58],[-11,220],[-97,220],[81,208],[359,104],[163,-196],[425,115],[321,151],[397,12],[375,57],[376,139],[299,128],[337,127],[218,-35],[190,-46],[414,81],[370,-104],[381,11],[364,81],[375,-57],[414,-58],[386,23],[403,-12],[413,-11],[381,23],[283,174],[337,92],[349,-127],[331,104],[300,208],[179,-185],[98,-208],[180,-197],[288,174],[332,-220],[375,-70],[321,-162],[392,35],[354,104],[418,-23],[376,-81],[381,-104],[147,254],[-180,197],[-136,209],[-359,46],[-158,220],[-60,220],[-98,440],[213,-81],[364,-35],[359,35],[327,-93],[283,-174],[119,-208],[376,-35],[359,81],[381,116],[342,70],[283,-139],[370,46],[239,451],[224,-266],[321,-104],[348,58],[228,-232],[365,-23],[337,-69],[332,-128],[218,220],[108,209],[278,-232],[381,58],[283,-127],[190,-197],[370,58],[288,127],[283,151],[337,81],[392,69],[354,81],[272,127],[163,186],[65,254],[-32,244],[-87,231],[-98,232],[-87,231],[-71,209],[-16,231],[27,232],[130,220],[109,243],[44,231],[-55,255],[-32,232],[136,266],[152,173],[180,220],[190,186],[223,173],[109,255],[152,162],[174,151],[267,34],[174,186],[196,115],[228,70],[202,150],[157,186],[218,69],[163,-151],[-103,-196],[-283,-174],[-120,-127],[-206,92],[-229,-58],[-190,-139],[-202,-150],[-136,-174],[-38,-231],[17,-220],[130,-197],[-190,-139],[-261,-46],[-153,-197],[-163,-185],[-174,-255],[-44,-220],[98,-243],[147,-185],[229,-139],[212,-185],[114,-232],[60,-220],[82,-232],[130,-196],[82,-220],[38,-544],[81,-220],[22,-232],[87,-231],[-38,-313],[-152,-243],[-163,-197],[-370,-81],[-125,-208],[-169,-197],[-419,-220],[-370,-93],[-348,-127],[-376,-128],[-223,-243],[-446,-23],[-489,23],[-441,-46],[-468,0],[87,-232],[424,-104],[311,-162],[174,-208],[-310,-185],[-479,58],[-397,-151],[-17,-243],[-11,-232],[327,-196],[60,-220],[353,-220],[588,-93],[500,-162],[398,-185],[506,-186],[690,-92],[681,-162],[473,-174],[517,-197],[272,-278],[136,-220],[337,209],[457,173],[484,186],[577,150],[495,162],[691,12],[680,-81],[560,-139],[180,255],[386,173],[702,12],[550,127],[522,128],[577,81],[614,104],[430,150],[-196,209],[-119,208],[0,220],[-539,-23],[-571,-93],[-544,0],[-77,220],[39,440],[125,128],[397,138],[468,139],[337,174],[337,174],[251,231],[380,104],[376,81],[190,47],[430,23],[408,81],[343,116],[337,139],[305,139],[386,185],[245,197],[261,173],[82,232],[-294,139],[98,243],[185,185],[288,116],[305,139],[283,185],[217,232],[136,277],[202,163],[331,-35],[136,-197],[332,-23],[11,220],[142,231],[299,-58],[71,-220],[331,-34],[360,104],[348,69],[315,-34],[120,-243],[305,196],[283,105],[315,81],[310,81],[283,139],[310,92],[240,128],[168,208],[207,-151],[288,81],[202,-277],[157,-209],[316,116],[125,232],[283,162],[365,-35],[108,-220],[229,220],[299,69],[326,23],[294,-11],[310,-70],[300,-34],[130,-197],[180,-174],[304,104],[327,24],[315,0],[310,11],[278,81],[294,70],[245,162],[261,104],[283,58],[212,162],[152,324],[158,197],[288,-93],[109,-208],[239,-139],[289,46],[196,-208],[206,-151],[283,139],[98,255],[250,104],[289,197],[272,81],[326,116],[218,127],[228,139],[218,127],[261,-69],[250,208],[180,162],[261,-11],[229,139],[54,208],[234,162],[228,116],[278,93],[256,46],[244,-35],[262,-58],[223,-162],[27,-254],[245,-197],[168,-162],[332,-70],[185,-162],[229,-162],[266,-35],[223,116],[240,243],[261,-127],[272,-70],[261,-69],[272,-46],[277,0],[229,-614],[-11,-150],[-33,-267],[-266,-150],[-218,-220],[38,-232],[310,12],[-38,-232],[-141,-220],[-131,-243],[212,-185],[321,-58],[321,104],[153,232],[92,220],[153,185],[174,174],[70,208],[147,289],[174,58],[316,24],[277,69],[283,93],[136,231],[82,220],[190,220],[272,151],[234,115],[153,197],[157,104],[202,93],[277,-58],[250,58],[272,69],[305,-34],[201,162],[142,393],[103,-162],[131,-278],[234,-115],[266,-47],[267,70],[283,-46],[261,-12],[174,58],[234,-35],[212,-127],[250,81],[300,0],[255,81],[289,-81],[185,197],[141,196],[191,163],[348,439],[179,-81],[212,-162],[185,-208],[354,-359],[272,-12],[256,0],[299,70],[299,81],[229,162],[190,174],[310,23],[207,127],[218,-116],[141,-185],[196,-185],[305,23],[190,-150],[332,-151],[348,-58],[288,47],[218,185],[185,185],[250,46],[251,-81],[288,-58],[261,93],[250,0],[245,-58],[256,-58],[250,104],[299,93],[283,23],[316,0],[255,58],[251,46],[76,290],[11,243],[174,-162],[49,-266],[92,-244],[115,-196],[234,-105],[315,35],[365,12],[250,35],[364,0],[262,11],[364,-23],[310,-46],[196,-186],[-54,-220],[179,-173],[299,-139],[310,-151],[360,-104],[375,-92],[283,-93],[315,-12],[180,197],[245,-162],[212,-185],[245,-139],[337,-58],[321,-69],[136,-232],[316,-139],[212,-208],[310,-93],[321,12],[299,-35],[332,12],[332,-47],[310,-81],[288,-139],[289,-116],[195,-173],[-32,-232],[-147,-208],[-125,-266],[-98,-209],[-131,-243],[-364,-93],[-163,-208],[-360,-127],[-125,-232],[-190,-220],[-201,-185],[-115,-243],[-70,-220],[-28,-266],[6,-220],[158,-232],[60,-220],[130,-208],[517,-81],[109,-255],[-501,-93],[-424,-127],[-528,-23],[-234,-336],[-49,-278],[-119,-220],[-147,-220],[370,-196],[141,-244],[239,-219],[338,-197],[386,-186],[419,-185],[636,-185],[142,-289],[800,-128],[53,-45],[208,-175],[767,151],[636,-186],[479,-142],[-99999,0]],[[59092,71341],[19,3],[40,143],[200,-8],[253,176],[-188,-251],[21,-111]],[[59437,71293],[-30,21],[-53,-45],[-42,12],[-14,-22],[-5,59],[-20,37],[-54,6],[-75,-51],[-52,31]],[[59437,71293],[8,-48],[-285,-240],[-136,77],[-64,237],[132,22]],[[45272,63236],[13,274],[106,161],[91,308],[-18,200],[96,417],[155,376],[93,95],[74,344],[6,315],[100,365],[185,216],[177,603],[5,8],[139,227],[259,65],[218,404],[140,158],[232,493],[-70,735],[106,508],[37,312],[179,399],[278,270],[206,244],[186,612],[87,362],[205,-2],[167,-251],[264,41],[288,-131],[121,-6]],[[56944,63578],[0,2175],[0,2101],[-83,476],[71,365],[-43,253],[101,283]],[[56990,69231],[369,10],[268,-156],[275,-175],[129,-92],[214,188],[114,169],[245,49],[198,-75],[75,-293],[65,193],[222,-140],[217,-33],[137,149]],[[59700,68010],[-78,-238],[-60,-446],[-75,-308],[-65,-103],[-93,191],[-125,263],[-198,847],[-29,-53],[115,-624],[171,-594],[210,-920],[102,-321],[90,-334],[249,-654],[-55,-103],[9,-384],[323,-530],[49,-121]],[[53191,70158],[326,-204],[117,51],[232,-98],[368,-264],[130,-526],[250,-114],[391,-248],[296,-293],[136,153],[133,272],[-65,452],[87,288],[200,277],[192,80],[375,-121],[95,-264],[104,-2],[88,-101],[276,-70],[68,-195]],[[59804,53833],[-164,643],[-127,137],[-48,236],[-141,288],[-171,42],[95,337],[147,14],[42,181]],[[61764,57990],[-98,-261],[-94,-277],[22,-163],[4,-180],[155,-10],[67,42],[62,-106]],[[61882,57035],[-61,-209],[103,-325],[102,-285],[106,-210],[909,-702],[233,4]],[[61966,58083],[66,-183],[-9,-245],[-158,-142],[119,-161]],[[61984,57352],[-102,-317]],[[61984,57352],[91,-109],[54,-245],[125,-247],[138,-2],[262,151],[302,70],[245,184],[138,39],[99,108],[158,20]],[[58449,49909],[-166,-182],[-67,60]],[[58564,52653],[115,161],[176,-132],[224,138],[195,-1],[171,272]],[[55279,77084],[100,2],[-69,-260],[134,-227],[-41,-278],[-65,-27]],[[55338,76294],[-52,-53],[-90,-138],[-41,-325]],[[55719,75309],[35,-5],[13,121],[164,91],[62,23]],[[55993,75539],[95,35],[128,9]],[[55993,75539],[-9,44],[33,71],[31,144],[-39,-4],[-54,110],[-46,28],[-36,94],[-52,36],[-40,84],[-50,-33],[-38,-196],[-66,-43]],[[55627,75874],[22,51],[-106,123],[-91,63],[-40,82],[-74,101]],[[55380,75322],[-58,46],[-78,192],[-120,118]],[[55627,75874],[-52,-132]],[[32866,56937],[160,77],[58,-21],[-11,-440],[-232,-65],[-50,53],[81,163],[-6,233]]],"bbox":[-180,-85.60903777459771,180,83.64513000000001],"transform":{"scale":[0.0036000360003600037,0.0016925586033320105],"translate":[-180,-85.60903777459771]}} diff --git a/data/Filtered_Artworks.csv b/data/Filtered_Artworks.csv new file mode 100644 index 0000000..2c18681 --- /dev/null +++ b/data/Filtered_Artworks.csv @@ -0,0 +1,335 @@ +Title,Artist,ConstituentID,ArtistBio,Nationality,BeginDate,EndDate,Gender,Date,Medium,Dimensions,CreditLine,AccessionNumber,Classification,Department,DateAcquired,Cataloged,ObjectID,URL,ImageURL,OnView,Circumference (cm),Depth (cm),Diameter (cm),Height (cm),Length (cm),Weight (kg),Width (cm),Seat Height (cm),Duration (sec.) +"Convention Hall Project, Chicago, Illinois (Preliminary version: interior perspective)",Ludwig Mies van der Rohe,7166,"(American, born Germany. 1886–1969)",(American),(1886),(1969),(male),1954,"Collage of cut-and-pasted reproductions, photograph, and paper on composition board","33 x 48"" (83.8 x 121.9 cm)","Mies van der Rohe Archive, gift of the architect",572.1963,Architecture,Architecture & Design,1963-11-12,Y,703,https://www.moma.org/collection/works/703,https://www.moma.org/media/W1siZiIsIjUxODUyNSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=424e6dd4127da5b5,,,,,83.8201676403,,,121.9202438405,, +"Entrance to an Underground City, project (Perspective)",Walter Pichler,4612,"(Austrian, 1936–2012)",(Austrian),(1936),(2012),(male),1963,Photomontage and graphite on paper,"13 3/4 x 11 3/4"" (34.9 x 29.8 cm)",Philip Johnson Fund,567.1963,Architecture,Architecture & Design,1963-11-12,Y,699,https://www.moma.org/collection/works/699,https://www.moma.org/media/W1siZiIsIjUxODUyMiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=61b5d58765377167,,,,,34.9,,,29.8,, +"Urban Renewal in New York Project, New York, New York, Aerial perspective",Hans Hollein,2705,"(Austrian, 1934–2014)",(Austrian),(1934),(2014),(male),1964,Cut-and-pasted gelatin silver photograph on gelatin silver photograph,"8 1/8 x 10"" (20.6 x 25.4 cm)",Philip Johnson Fund,433.1967,Architecture,Architecture & Design,1967-04-11,Y,632,https://www.moma.org/collection/works/632,https://www.moma.org/media/W1siZiIsIjUxOTc1NCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=9a654a4d237e115f,,,,,19.0,,,24.1,, +"Aircraft Carrier City in Landscape, project, Exterior perspective",Hans Hollein,2705,"(Austrian, 1934–2014)",(Austrian),(1934),(2014),(male),1964,Cut-and-pasted printed paper on gelatin silver photographs mounted on board,"8 1/2 x 39 3/8"" (21.6 x 100 cm)",Philip Johnson Fund,434.1967,Architecture,Architecture & Design,1967-04-11,Y,634,https://www.moma.org/collection/works/634,https://www.moma.org/media/W1siZiIsIjUxOTc1NSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=d4020c3a4b370901,,,,,21.6,,,100.0,, +"Aircraft Carrier City in Landscape, project, Perspective",Hans Hollein,2705,"(Austrian, 1934–2014)",(Austrian),(1934),(2014),(male),1964,Cut-and-pasted reproduction on photograph,"4 1/2 x 7 1/4"" (11.4 x 18.4 cm)",Philip Johnson Fund,435.1967,Architecture,Architecture & Design,1967-04-11,Y,636,https://www.moma.org/collection/works/636,https://www.moma.org/media/W1siZiIsIjUxOTc1NiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=7efb84fe8d565256,,,,,11.4,,,18.4,, +"Aircraft Carrier City in Landscape, project, Aerial perspective",Hans Hollein,2705,"(Austrian, 1934–2014)",(Austrian),(1934),(2014),(male),1964,Cut-and-pasted reproduction on photograph,"4 3/4 x 14 1/2"" (12.1 x 36.8 cm)",Philip Johnson Fund,437.1967,Architecture,Architecture & Design,1967-04-11,Y,640,https://www.moma.org/collection/works/640,https://www.moma.org/media/W1siZiIsIjUxOTc1OCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=588aa6a655f5dac9,,,,,12.1,,,36.8,, +"Highrise Building, Sparkplug, project (Exterior perspective)",Hans Hollein,2705,"(Austrian, 1934–2014)",(Austrian),(1934),(2014),(male),1964,Cut-and-pasted printed paper on gelatin silver photograph,"4 3/4 x 7 1/4"" (12.1 x 18.4 cm)",Philip Johnson Fund,438.1967,Architecture,Architecture & Design,1967-04-11,Y,642,https://www.moma.org/collection/works/642,https://www.moma.org/media/W1siZiIsIjUxOTc1OSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=5e0875a313298416,,,,,12.1,,,18.4,, +"Highrise Building, Theodolite, project, Perspective",Hans Hollein,2705,"(Austrian, 1934–2014)",(Austrian),(1934),(2014),(male),1964,Cut-and-pasted printed papers on gelatin silver photograph mounted on board,"6 3/4 x 17 1/2"" (17.1 x 44.5 cm)",Philip Johnson Fund,439.1967,Architecture,Architecture & Design,1967-04-11,Y,644,https://www.moma.org/collection/works/644,https://www.moma.org/media/W1siZiIsIjUxOTc2MCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=32431e10c2f95523,,,,,17.1,,,44.5,, +"Universal City, from the Linear City Series, project, Aerial perspective of Earth's horizon",Raimund Abraham,47,"(American, born Austria. 1933–2010)",(American),(1933),(2010),(male),1966,"Cut-and-pasted printed papers, cut-and-pasted gelatin silver photograph, and ink on board","13 1/8 x 17"" (33.3 x 43.2 cm)",Purchase,1292.1968,Architecture,Architecture & Design,1968-10-07,Y,917,https://www.moma.org/collection/works/917,https://www.moma.org/media/W1siZiIsIjUxOTU3NiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=25f981e9efd7927d,,,,,33.3376,,,43.1801,, +"Universal City, project, Aerial perspective of New York",Raimund Abraham,47,"(American, born Austria. 1933–2010)",(American),(1933),(2010),(male),1966,Photomontage,"15 1/4 x 23"" (38.7 x 58.4 cm)",Gift of the architect,1291.1968,Architecture,Architecture & Design,1968-10-07,Y,915,https://www.moma.org/collection/works/915,,,,,,38.7351,,,58.4201,, +"Universal City, project, Sectional perspective",Raimund Abraham,47,"(American, born Austria. 1933–2010)",(American),(1933),(2010),(male),1966,"Photomontage, ink and graphite on paper","19 1/2 x 22 1/4"" (49.5 x 56.5 cm)",Gift of the architect,1290.1968,Architecture,Architecture & Design,1968-10-07,Y,910,https://www.moma.org/collection/works/910,https://www.moma.org/media/W1siZiIsIjUxOTU3NSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=a1c12115af61020a,,,,,49.5301,,,56.5151,, +"Transplantation II: Floating Underwater Environment, project, Aerial sectional perspective",Raimund Abraham,47,"(American, born Austria. 1933–2010)",(American),(1933),(2010),(male),1966,"Photomontage, color pencil on paper","13 1/2 x 17 1/4"" (34.3 x 43.8 cm)",Purchase,1288.1968,Architecture,Architecture & Design,1968-10-07,Y,906,https://www.moma.org/collection/works/906,,,,,,34.2901,,,43.8151,, +"Project for a Painted Wall, New York City, New York (Perspective)",Jason Crum,1318,"(American, 1935–2004)",(American),(1935),(2004),(male),1969,Gouache on photograph,"20 x 27 1/2"" (50.8 x 69.9 cm)",Purchase,372.1969,Architecture,Architecture & Design,1969-04-24,Y,421,https://www.moma.org/collection/works/421,https://www.moma.org/media/W1siZiIsIjUxOTg4MiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=7f3dc1f099df6809,,,,,50.8,,,69.9,, +"Project for a Painted Wall, Fox Department Store, Hartford, Connecticut (Perspective)",Jason Crum,1318,"(American, 1935–2004)",(American),(1935),(2004),(male),1969,Gouache on photograph,"13 3/4 x 16 7/8"" (34.9 x 42.9 cm)",Purchase,374.1969,Architecture,Architecture & Design,1969-04-24,Y,429,https://www.moma.org/collection/works/429,https://www.moma.org/media/W1siZiIsIjUxOTg4NCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=c5725b0813b0ca86,,,,,34.9,,,42.9,, +"Project for a Painted Wall, New York City, New York (Perspective)",Jason Crum,1318,"(American, 1935–2004)",(American),(1935),(2004),(male),1969,Gouache on photograph,"30 x 20"" (76.2 x 50.8 cm)",Purchase,373.1969,Architecture,Architecture & Design,1969-04-24,Y,425,https://www.moma.org/collection/works/425,https://www.moma.org/media/W1siZiIsIjUxOTg4MyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=482b207f5027499c,,,,,76.2,,,50.8,, +"Tetrahedron City Project, Yomiuriland, Japan (Aerial perspective)","R. Buckminster Fuller, Shoji Sadao","2030, 8135","(American, 1895–1983) (American, born 1927)",(American) (American),(1895) (1927),(1983) (0),(male) (male),c.1968,Cut-and-pasted gelatin silver photograph on gelatin silver photograph with airbrush,"11 x 14"" (27.9 x 35.6 cm)",Gift of the architects,1251.1974,Architecture,Architecture & Design,1974-11-06,Y,863,https://www.moma.org/collection/works/863,https://www.moma.org/media/W1siZiIsIjUyMDEyMyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=f226bc4d1e8e65f3,,,,,27.9,,,35.6,, +"New York Birdcage-Imaginary Architecture, project, New York City, New York, Perspective from above and plan",Friedrich St. Florian,5580,"(American, born Austria 1932)",(American),(1932),(0),(male),1968,Colored pencil on architectural photo reproduction,"33 1/2 x 35 1/8"" (85.1 x 89.2 cm)",Philip Johnson Fund,1252.1974,Architecture,Architecture & Design,1974-11-06,Y,865,https://www.moma.org/collection/works/865,https://www.moma.org/media/W1siZiIsIjUyMDEyNCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=92e48b94a1f7e3f4,,,,,85.0902,,,89.2177,, +"Maison de la Publicité Project, Paris, France (Exterior perspective)","Oscar Nitzchke, Hugo Herdeg","4312, 8841","(American, born Germany. 1900–1991) (Swiss, 1909–1953)",(American) (Swiss),(1900) (1909),(1991) (1953),(male) (male),1936,"Gouache, ink, and cut-and-pasted printed paper on photograph mounted on canvas","28 1/4 x 20"" (71.8 x 50.8 cm)","Gift of Lily Auchincloss, Barbara Jakobson, and Walter Randel",424.1976.1,Architecture,Architecture & Design,1976-10-22,Y,603,https://www.moma.org/collection/works/603,https://www.moma.org/media/W1siZiIsIjExODIxMiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=6797e1796fd3f24a,,,,,71.7551,,,50.8001,, +"Exhibition ""Mario Bellini: Designer."", The Museum of Modern Art, New York, 1987, Installation plan",Mario Bellini,451,"(Italian, born 1935)",(Italian),(1935),(0),(male),1987,Crayon and cut and pasted photocopies on transparent overlay on print,"19 1/2 x 30 1/2"" (49.5 x 77.5 cm)",Gift of the designer,119.1988,Architecture,Architecture & Design,1988-04-27,Y,209,https://www.moma.org/collection/works/209,https://www.moma.org/media/W1siZiIsIjUyNzA0NiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=b410564585bf3485,,,,,49.5,,,77.5,, +"Eclectic House Facade, project","Venturi and Rauch, John Rauch, Robert Venturi","8213, 8214, 6132","(American, est. 1964–1979) (American, born 1930) (American, 1925–2018)",(American) (American) (American),(1964) (1930) (1925),(1979) (0) (2018),() (male) (male),1977,"Color overlay on photostat, mounted on Fome-Cor",18 x 18 (45.7 x 45.7 cm),Gift of Kenneth Walker,395.1988,Architecture,Architecture & Design,1988-11-22,Y,522,https://www.moma.org/collection/works/522,https://www.moma.org/media/W1siZiIsIjUyNzEyNCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=7a07d53ac3ce4c73,,,,,45.7,,,45.7,, +"Center for Applied Computer Research, Las Promesas, Mexico, Elevation",Emilio Ambasz,141,"(Argentine, born 1943)",(Argentine),(1943),(0),(male),1975,"Ink, felt-tipped pen, and photostat on acetate","37 7/8 x 47 7/8"" (96.2 x 121.6 cm)",Gift of the architect,479.1990,Architecture,Architecture & Design,1990-10-24,Y,675,https://www.moma.org/collection/works/675,https://www.moma.org/media/W1siZiIsIjUyNzE2MyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=24c69a94df7b3b53,,,,,88.3,,,121.6,, +"Center for Applied Computer Research, Las Promesas, Mexico, Section",Emilio Ambasz,141,"(Argentine, born 1943)",(Argentine),(1943),(0),(male),1975,Ink and photostat on acetate,"36 3/4 x 38 1/2"" (93.3 x 97.8 cm) +",Gift of the architect,480.1990,Architecture,Architecture & Design,1990-10-24,Y,680,https://www.moma.org/collection/works/680,https://www.moma.org/media/W1siZiIsIjUyNzE2NSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=c42b958cd0d9e053,,,,,93.3,,,97.8,, +"Center for Applied Computer Research, Las Promesas, Mexico, Axonometric",Emilio Ambasz,141,"(Argentine, born 1943)",(Argentine),(1943),(0),(male),1975,"Ink, felt-tipped pen, and photostat on acetate","37 1/2 x 38 1/4"" (95.3 x 97.2 cm)",Gift of the architect,478.1990,Architecture,Architecture & Design,1990-10-24,Y,672,https://www.moma.org/collection/works/672,https://www.moma.org/media/W1siZiIsIjUyNzE2MiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=dc332312ae34425e,,,2.0,,2.0,,,2.0,, +"Center for Applied Computer Research, Las Promesas, Mexico, Site plan",Emilio Ambasz,141,"(Argentine, born 1943)",(Argentine),(1943),(0),(male),1975,Ink and photostat on acetate,"37 1/2 x 37 5/8"" (95.3 x 95.6 cm)",Gift of the architect,131.1992,Architecture,Architecture & Design,1992-01-15,Y,219,https://www.moma.org/collection/works/219,https://www.moma.org/media/W1siZiIsIjUyNzM5NSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=4cd3fcc6fee186b3,,,,,95.3,,,95.6,, +"Helix City Project, Tokyo, Japan (Plan)",Kisho Kurokawa,6967,"(Japanese, 1934–2007)",(Japanese),(1934),(2007),(male),1961,Cut-and-pasted gelatin silver photographs and ink on cut-and-pasted tracing paper on paper,"21 1/2 x 17 1/2"" (54.6 x 44.5 cm)",Gift of the architect,427.1992,Architecture,Architecture & Design,1992-10-21,Y,621,https://www.moma.org/collection/works/621,https://www.moma.org/media/W1siZiIsIjUyNzY2NyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=c49afeafb0a78eb7,,,,,54.6,,,44.5,, +"Parc de la Villette, Paris, France (Follies and Galleries, isometrics)",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1986,Gouache and color ink on gelatin silver photograph,"34 x 50"" (86.3 x 127 cm)",Purchase,429.1992,Architecture,Architecture & Design,1992-10-21,Y,625,https://www.moma.org/collection/works/625,https://www.moma.org/media/W1siZiIsIjUyNzY3MCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=237749042411b859,,,,,86.3,,,127.0,, +"Austrian Cultural Institute, New York, New York, Exterior perspective,",Raimund Abraham,47,"(American, born Austria. 1933–2010)",(American),(1933),(2010),(male),1993,"Photocopy, photocopy on vellum, laser photocopy, graphite, and color pencil on paper","36 x 36"" (91.4 x 91.4 cm)",Gift of the architect,350.1993,Architecture,Architecture & Design,1993-01-14,Y,342,https://www.moma.org/collection/works/342,https://www.moma.org/media/W1siZiIsIjUyNzU2MyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=d85747e664dfa516,,,,,91.4402,,,91.4402,, +"Le Fresnoy, National Studio for Contemporary Arts, Tourcoing, France, Cinematic beams elevation",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1992,Color ink on photographic line print,"23 1/4 x 31 1/4"" (59 x 79.4 cm)",Gift of the architect in honor of Lily Auchincloss,386.1994,Architecture,Architecture & Design,1994-09-21,Y,476,https://www.moma.org/collection/works/476,https://www.moma.org/media/W1siZiIsIjUyNzYzMiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=c835098eb95f22b0,,,,,59.0,,,79.4,, +"Casa de Retiro Espiritual, Córdoba, Spain, Aerial axonometric",Emilio Ambasz,141,"(Argentine, born 1943)",(Argentine),(1943),(0),(male),1979,Airbrush and graphite on gelatin silver photograph mounted on foamcore,"30 5/8 x 25 15/16"" (77.8 x 65.9 cm)",Gift of the architect in honor of Lily Auchincloss,370.1994,Architecture,Architecture & Design,1994-09-21,Y,415,https://www.moma.org/collection/works/415,https://www.moma.org/media/W1siZiIsIjUyNzYwNCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=1327379b58108e9f,,,,,77.8,,,65.9,, +"Slow House Project, North Haven, Long Island, New York, Perspective and plans of TV in Picture Window Apparatus,","Diller + Scofidio, Ricardo Scofidio, Elizabeth Diller","8707, 6952, 6951","(est. 1981) (American, born 1935) (American, born Poland 1954)",(American) (American) (American),(1981) (1935) (1954),(0) (0) (0),() (male) (female),1991,Cut-and-pasted color electrostatic prints and graphite on frosted polymer sheet taped to board with cut-and-pasted color photograph,"12 3/8 x 18 3/8"" (31.4 x 46.7 cm)",Gift of the architects in honor of Lily Auchincloss,377.1994,Architecture,Architecture & Design,1994-09-21,Y,440,https://www.moma.org/collection/works/440,https://www.moma.org/media/W1siZiIsIjUyNzYxNiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=13a8ca4f941d2781,,,,,31.4,,,46.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 4: The Block",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1980-81,Ink and cut-and-pasted gelatin silver photographs on tracing paper,"19 x 31"" (48.3 x 78.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,9.1995.4,Architecture,Architecture & Design,1995-01-17,Y,63,https://www.moma.org/collection/works/63,https://www.moma.org/media/W1siZiIsIjUyNzc4NCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=3934f564c43478ea,,,,,48.3,,,78.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 4: The Block",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1980-81,Ink and cut-and-pasted gelatin silver photographs on tracing paper,"19 x 31"" (48.3 x 78.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,9.1995.9,Architecture,Architecture & Design,1995-01-17,Y,68,https://www.moma.org/collection/works/68,https://www.moma.org/media/W1siZiIsIjUyNzc4OSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=ee2de5ec9a69578c,,,,,48.3,,,78.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 4: The Block",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1980-81,Ink and cut-and-pasted gelatin silver photographs on tracing paper,"19 x 31"" (48.3 x 78.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,9.1995.8,Architecture,Architecture & Design,1995-01-17,Y,67,https://www.moma.org/collection/works/67,https://www.moma.org/media/W1siZiIsIjUyNzc4OCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=6c377d9c27b26671,,,,,48.3,,,78.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 4: The Block",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1980-81,Ink and cut-and-pasted gelatin silver photographs on tracing paper,"19 x 31"" (48.3 x 78.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,9.1995.7,Architecture,Architecture & Design,1995-01-17,Y,66,https://www.moma.org/collection/works/66,https://www.moma.org/media/W1siZiIsIjUyNzc4NyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=1be5ad50cd1b8133,,,,,48.3,,,78.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 4: The Block",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1980-81,Ink and cut-and-pasted gelatin silver photographs on tracing paper,"19 x 31"" (48.3 x 78.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,9.1995.6,Architecture,Architecture & Design,1995-01-17,Y,65,https://www.moma.org/collection/works/65,https://www.moma.org/media/W1siZiIsIjUyNzc4NiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=9306c7f67f4869bb,,,,,48.3,,,78.7,, +"The Manhattan Transcripts Project, New York, New York , Episode 4: The Block",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1980-81,Ink and cut-and-pasted gelatin silver photographs on tracing paper,"19 x 31"" (48.3 x 78.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,9.1995.5,Architecture,Architecture & Design,1995-01-17,Y,64,https://www.moma.org/collection/works/64,https://www.moma.org/media/W1siZiIsIjUyNzc4NSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=1315fd2a5e0e1cf9,,,,,48.3,,,78.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 4: The Block,",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1980-81,Ink and cut-and-pasted gelatin silver photographs on tracing paper,"19 x 31"" (48.3 x 78.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,9.1995.3,Architecture,Architecture & Design,1995-01-17,Y,62,https://www.moma.org/collection/works/62,https://www.moma.org/media/W1siZiIsIjUyNzc4MyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=781f25777c6f48f5,,,,,48.3,,,78.7,, +"The Manhattan Transcripts Project, New York, New York, Introductory panel to Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1980,Photographic reproduction with colored synthetic laminate,"20 x 20"" (50.8 x 50.8 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,2.1995,Architecture,Architecture & Design,1995-01-17,Y,5,https://www.moma.org/collection/works/5,https://www.moma.org/media/W1siZiIsIjUyNzQ3NCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=6295e6698e3871fd,,,,,50.8,,,50.8,, +"The Manhattan Transcripts Project, New York, New York, Episode 4: The Block",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1980-81,Ink and cut-and-pasted gelatin silver photographs on tracing paper,"19 x 31"" (48.3 x 78.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,9.1995.13,Architecture,Architecture & Design,1995-01-17,Y,59,https://www.moma.org/collection/works/59,https://www.moma.org/media/W1siZiIsIjUyNzc4MCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=772a98fc2246d8de,,,,,48.3,,,78.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.4,Architecture,Architecture & Design,1995-01-17,Y,26,https://www.moma.org/collection/works/26,https://www.moma.org/media/W1siZiIsIjUyNzUzOCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=594e5c3af08ba67c,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.3,Architecture,Architecture & Design,1995-01-17,Y,25,https://www.moma.org/collection/works/25,https://www.moma.org/media/W1siZiIsIjUyNzUzNyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=8c154153e68d9663,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.24,Architecture,Architecture & Design,1995-01-17,Y,24,https://www.moma.org/collection/works/24,https://www.moma.org/media/W1siZiIsIjUyNzUzNiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=282545adb64329df,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.23,Architecture,Architecture & Design,1995-01-17,Y,23,https://www.moma.org/collection/works/23,https://www.moma.org/media/W1siZiIsIjUyNzUzNSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=9de9474b5442dd74,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.22,Architecture,Architecture & Design,1995-01-17,Y,22,https://www.moma.org/collection/works/22,https://www.moma.org/media/W1siZiIsIjUyNzUzNCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=ecde94004dfe514b,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York , Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.21,Architecture,Architecture & Design,1995-01-17,Y,21,https://www.moma.org/collection/works/21,https://www.moma.org/media/W1siZiIsIjUyNzUzMyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=e9752349b0fb457b,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.20,Architecture,Architecture & Design,1995-01-17,Y,20,https://www.moma.org/collection/works/20,https://www.moma.org/media/W1siZiIsIjUyNzUzMiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=75933e7021d39d8b,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.2,Architecture,Architecture & Design,1995-01-17,Y,19,https://www.moma.org/collection/works/19,https://www.moma.org/media/W1siZiIsIjUyNzUzMSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=0b3e1b840debe461,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.19,Architecture,Architecture & Design,1995-01-17,Y,18,https://www.moma.org/collection/works/18,https://www.moma.org/media/W1siZiIsIjUyNzUzMCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=ed3ca6eb3b0da967,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.5,Architecture,Architecture & Design,1995-01-17,Y,27,https://www.moma.org/collection/works/27,https://www.moma.org/media/W1siZiIsIjUyNzUzOSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=68c4eb49459cf9d4,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.18,Architecture,Architecture & Design,1995-01-17,Y,17,https://www.moma.org/collection/works/17,https://www.moma.org/media/W1siZiIsIjUyNzUyOSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=0260c6f2c6bafb0f,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.16,Architecture,Architecture & Design,1995-01-17,Y,15,https://www.moma.org/collection/works/15,https://www.moma.org/media/W1siZiIsIjUyNzUyNyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=cae7a7dbae095d02,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.15,Architecture,Architecture & Design,1995-01-17,Y,14,https://www.moma.org/collection/works/14,https://www.moma.org/media/W1siZiIsIjUyNzUyNiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=0c521cdffde7d830,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.14,Architecture,Architecture & Design,1995-01-17,Y,13,https://www.moma.org/collection/works/13,https://www.moma.org/media/W1siZiIsIjUyNzUyNSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=4abebadbac064a09,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.13,Architecture,Architecture & Design,1995-01-17,Y,12,https://www.moma.org/collection/works/12,https://www.moma.org/media/W1siZiIsIjUyNzUyNCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=87a368adbfb01ea1,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.12,Architecture,Architecture & Design,1995-01-17,Y,11,https://www.moma.org/collection/works/11,https://www.moma.org/media/W1siZiIsIjUyNzUyMiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=02884d507ae8037a,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.11,Architecture,Architecture & Design,1995-01-17,Y,10,https://www.moma.org/collection/works/10,https://www.moma.org/media/W1siZiIsIjUyNzUyMSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=fd6cca6e5eaa12d8,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 4: The Block",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1980-81,Ink and cut-and-pasted gelatin silver photographs on tracing paper,"19 x 31"" (48.3 x 78.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,9.1995.14,Architecture,Architecture & Design,1995-01-17,Y,60,https://www.moma.org/collection/works/60,https://www.moma.org/media/W1siZiIsIjUyNzc4MSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=3cc8338ad2209105,,,,,48.3,,,78.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photographs,"Each: 14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.1-24,Architecture,Architecture & Design,1995-01-17,Y,8,https://www.moma.org/collection/works/8,https://www.moma.org/media/W1siZiIsIjUyNzUyMyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=bb83636021a3bb91,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.1,Architecture,Architecture & Design,1995-01-17,Y,7,https://www.moma.org/collection/works/7,https://www.moma.org/media/W1siZiIsIjUyNzUyMCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=d172aa966e03ed80,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.17,Architecture,Architecture & Design,1995-01-17,Y,16,https://www.moma.org/collection/works/16,https://www.moma.org/media/W1siZiIsIjUyNzUyOCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=0fad721785cf4354,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.6,Architecture,Architecture & Design,1995-01-17,Y,28,https://www.moma.org/collection/works/28,https://www.moma.org/media/W1siZiIsIjUyNzU0MCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=bd0024459b6137cc,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.10,Architecture,Architecture & Design,1995-01-17,Y,9,https://www.moma.org/collection/works/9,,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Introductory panel to Episode 4: The Block",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1980,Photographic reproduction with colored synthetic laminate,"Each: 20 x 20"" (50.8 x 50.8 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,8.1995,Architecture,Architecture & Design,1995-01-17,Y,52,https://www.moma.org/collection/works/52,https://www.moma.org/media/W1siZiIsIjUyNzc1NyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=63393623adefcbd0,,,,,50.8,,,50.8,, +"The Manhattan Transcripts Project, New York, New York, Episode 4: The Block",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1980-81,Ink and photographs on tracing paper,"Each: 19 x 31"" (48.2 x 78.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,9.1995.1-14,Architecture,Architecture & Design,1995-01-17,Y,55,https://www.moma.org/collection/works/55,https://www.moma.org/media/W1siZiIsIjUyNzc3OCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=ab336ad9a7d2d99e,,,,,48.2,,,78.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 4: The Block",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1980-81,Ink and cut-and-pasted gelatin silver photographs on tracing paper,"19 x 31"" (48.3 x 78.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,9.1995.10,Architecture,Architecture & Design,1995-01-17,Y,56,https://www.moma.org/collection/works/56,https://www.moma.org/media/W1siZiIsIjUyNzc3NiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=20c7834ef320b274,,,,,48.3,,,78.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.8,Architecture,Architecture & Design,1995-01-17,Y,30,https://www.moma.org/collection/works/30,https://www.moma.org/media/W1siZiIsIjUyNzU0MiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=4d671cca5198113c,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 3: The Tower (The Fall)",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1979,Ink and photographic reproductions on tracing paper,"48 x 24"" (121.9 x 61 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,7.1995.9,Architecture,Architecture & Design,1995-01-17,Y,50,https://www.moma.org/collection/works/50,,,,,,121.9,,,61.0,, +"The Manhattan Transcripts Project, New York, New York, Introductory panel to Episode 3: The Tower (The Fall)",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1980,Photographic reproduction with colored synthetic laminate,"20 x 20""(50.8 x 50.8 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,6.1995,Architecture,Architecture & Design,1995-01-17,Y,38,https://www.moma.org/collection/works/38,https://www.moma.org/media/W1siZiIsIjUyNzcxOCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=ab3cb4352bfb394f,,,,,50.8,,,50.8,, +"The Manhattan Transcripts Project, New York, New York, Episode 4: The Block",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1980-81,Ink and cut-and-pasted gelatin silver photographs on tracing paper,"19 x 31"" (48.3 x 78.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,9.1995.11,Architecture,Architecture & Design,1995-01-17,Y,57,https://www.moma.org/collection/works/57,https://www.moma.org/media/W1siZiIsIjUyNzc3NyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=f4b4d87eec5878dd,,,,,48.3,,,78.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 4: The Block",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1980-81,Ink and cut-and-pasted gelatin silver photographs on tracing paper,"19 x 31"" (48.3 x 78.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,9.1995.12,Architecture,Architecture & Design,1995-01-17,Y,58,https://www.moma.org/collection/works/58,https://www.moma.org/media/W1siZiIsIjUyNzc3OSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=81ab4d8df5d92804,,,,,48.3,,,78.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.7,Architecture,Architecture & Design,1995-01-17,Y,29,https://www.moma.org/collection/works/29,https://www.moma.org/media/W1siZiIsIjUyNzU0MSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=7dcac19ddeb0b9ca,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 4: The Block",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1980-81,Ink and cut-and-pasted gelatin silver photographs on tracing paper,"19 x 31"" (48.3 x 78.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,9.1995.1,Architecture,Architecture & Design,1995-01-17,Y,54,https://www.moma.org/collection/works/54,,,,,,48.3,,,78.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 1: The Park",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1976-77,Gelatin silver photograph,"14 x 18"" (35.6 x 45.7 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,3.1995.9,Architecture,Architecture & Design,1995-01-17,Y,31,https://www.moma.org/collection/works/31,https://www.moma.org/media/W1siZiIsIjUyNzU0MyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=ded5689521f07c84,,,,,35.6,,,45.7,, +"The Manhattan Transcripts Project, New York, New York, Episode 2: The Street (Border Crossing)",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1978,"Ink, charcoal, graphite, cut-and-pasted photographic reproductions, Letraset type, and color pencil on tracing paper","24 x 322"" (61 x 817.9 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,5.1995,Architecture,Architecture & Design,1995-01-17,Y,35,https://www.moma.org/collection/works/35,,,,,,60.9601,,,817.8816,, +"The Manhattan Transcripts Project, New York, New York, Introductory panel to Episode 2: The Street (Border Crossing)",Bernard Tschumi,7056,"(French and Swiss, born Switzerland 1944)",(),(1944),(0),(male),1980,Photographic reproduction with colored synthetic laminate,"20 x 20"" (50.8 X 50.8 cm)",Purchase and partial gift of the architect in honor of Lily Auchincloss,4.1995,Architecture,Architecture & Design,1995-01-17,Y,33,https://www.moma.org/collection/works/33,https://www.moma.org/media/W1siZiIsIjUyNzY0NCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=c526747c1409c8f1,,,,,50.8,,,50.8,, +"Exodus, or the Voluntary Prisoners of Architecture: Prologue","Rem Koolhaas, Elia Zenghelis, Madelon Vriesendorp, Zoe Zenghelis","6956, 7558, 6957, 7559","(Dutch, born 1944) (British, born Greece 1937) (Dutch, born 1945) (British, born Greece 1937)",(Dutch) (British) (Dutch) (British),(1944) (1937) (1945) (1937),(0) (0) (0) (0),(male) (male) (female) (female),1972,Gelatin silver photographs on board,"16 1/4 x 11 1/2"" (41.3 x 29.2 cm) +","Patricia Phelps de Cisneros Purchase Fund, Takeo Ohbayashi Purchase Fund, and Susan de Menil Purchase Fund",360.1996,Architecture,Architecture & Design,1996-02-25,Y,390,https://www.moma.org/collection/works/390,https://www.moma.org/media/W1siZiIsIjUyNzU5MSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=e172f4e6d79306bf,,,,,46.4,,,34.0,, +"Exodus, or the Voluntary Prisoners of Architecture: Exhausted Fugitives Led to Reception","Rem Koolhaas, Elia Zenghelis, Zoe Zenghelis, Madelon Vriesendorp","6956, 7558, 7559, 6957","(Dutch, born 1944) (British, born Greece 1937) (British, born Greece 1937) (Dutch, born 1945)",(Dutch) (British) (British) (Dutch),(1944) (1937) (1937) (1945),(0) (0) (0) (0),(male) (male) (female) (female),1972,"Cut-and-pasted gelatin silver photographs and photolithographs with ink, crayon, and felt-tipped pen on paper","16 x 11 1/2"" (40.6 x 29.2 cm)","Gift of Patricia Phelps de Cisneros, Takeo Ohbayashi Purchase Fund, and Susan de Menil Purchase Fund",361.1996,Architecture,Architecture & Design,1996-09-25,Y,392,https://www.moma.org/collection/works/392,https://www.moma.org/media/W1siZiIsIjUyNzU5MiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=c7522da2c1706925,,,,,46.0,,,33.3,, +"Exodus, or the Voluntary Prisoners of Architecture: The Strip (Aerial Perspective)","Madelon Vriesendorp, Zoe Zenghelis, Elia Zenghelis, Rem Koolhaas","6957, 7559, 7558, 6956","(Dutch, born 1945) (British, born Greece 1937) (British, born Greece 1937) (Dutch, born 1944)",(Dutch) (British) (British) (Dutch),(1945) (1937) (1937) (1944),(0) (0) (0) (0),(female) (female) (male) (male),1972,"Cut-and-pasted paper with watercolor, ink, gouache, and color pencil on gelatin silver photograph","16 x 19 7/8"" (40.6 x 50.5 cm)","Gift of Patricia Phelps de Cisneros, Takeo Ohbayashi Purchase Fund, and Susan de Menil Purchase Fund",362.1996,Architecture,Architecture & Design,1996-09-25,Y,104692,https://www.moma.org/collection/works/104692,https://www.moma.org/media/W1siZiIsIjUyNzU5NCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=d3410a60ffc28cf0,,,,,40.6401,,,50.4826,, +"Parc de la Villette Project, Paris, France (Plan)",Zaha Hadid,6953,"(British, born Iraq. 1950–2016)",(British),(1950),(2016),(female),1982-83,Ten photoelectrostatic prints on polymer sheets between synthetic polymer sheets with metal screws and supports,"(Each): 11 3/4 x 16 3/4"" (29.8 x 42.5 cm)",Gift of the architect in honor of Philip Johnson,357.1996.12.a-j,Architecture,Architecture & Design,1996-09-25,Y,367,https://www.moma.org/collection/works/367,https://www.moma.org/media/W1siZiIsIjIxMTE1NiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=0028781c14c63785,,,2.9,,42.9,,,30.5,, +"Jewish Museum Project, Judenplatz, Vienna, Austria Project, Exterior perspective",Raimund Abraham,47,"(American, born Austria. 1933–2010)",(American),(1933),(2010),(male),1992,Photocopy-transfer and acrylic,"24 x 31 1/2"" (61 x 80 cm) (sight)",Gift of the architect in honor of Philip Johnson,343.1996,Architecture,Architecture & Design,1996-09-25,Y,335,https://www.moma.org/collection/works/335,https://www.moma.org/media/W1siZiIsIjUyNzU1NyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=b53b2f3aa1133446,,,,,61.0,,,80.0,, +"Re-ruined Hiroshima, Hiroshima, Japan (Perspective)",Arata Isozaki,2837,"(Japanese, born 1931)",(Japanese),(1931),(0),(male),1990,Silkscreen after a photo collage original,"34 3/4 x 117"" (88.3 x 297.2 cm)",Gift of the architect in honor of Philip Johnson,359.1996,Architecture,Architecture & Design,1996-09-25,Y,387,https://www.moma.org/collection/works/387,,,,5.7,,98.5,,,307.4,, +"Exodus, or the Voluntary Prisoners of Architecture: The Strip","Rem Koolhaas, Elia Zenghelis, Madelon Vriesendorp, Zoe Zenghelis","6956, 7558, 6957, 7559","(Dutch, born 1944) (British, born Greece 1937) (Dutch, born 1945) (British, born Greece 1937)",(Dutch) (British) (Dutch) (British),(1944) (1937) (1945) (1937),(0) (0) (0) (0),(male) (male) (female) (female),1972,"Cut-and-pasted paper and painted paper with ink, pen, and graphite on photolithograph","19 3/4 x 25 7/8"" (50.2 x 65.7 cm)","Gift of Patricia Phelps de Cisneros, Takeo Ohbayashi Purchase Fund, and Susan de Menil Purchase Fund",363.1996,Architecture,Architecture & Design,1996-09-25,Y,104693,https://www.moma.org/collection/works/104693,https://www.moma.org/media/W1siZiIsIjUyNzU5NSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=e6bee20eec1dad0e,,,,,50.1651,,,65.7226,, +"Exodus, or the Voluntary Prisoners of Architecture: The Allotments","Rem Koolhaas, Elia Zenghelis, Zoe Zenghelis, Madelon Vriesendorp","6956, 7558, 7559, 6957","(Dutch, born 1944) (British, born Greece 1937) (British, born Greece 1937) (Dutch, born 1945)",(Dutch) (British) (British) (Dutch),(1944) (1937) (1937) (1945),(0) (0) (0) (0),(male) (male) (female) (female),1972,"Cut-and-pasted paper, marbleized paper, and photolithographs with ink and watercolor on paper","11 1/2 x 16 1/2"" (29.2 x 41.9 cm)","Gift of Patricia Phelps de Cisneros, Takeo Ohbayashi Purchase Fund, and Susan de Menil Purchase Fund",374.1996,Architecture,Architecture & Design,1996-09-25,Y,431,https://www.moma.org/collection/works/431,https://www.moma.org/media/W1siZiIsIjUyNzYxMSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=383fc1050da06106,,,,,33.3,,,46.0,, +"Exodus, or the Voluntary Prisoners of Architecture: The Baths","Rem Koolhaas, Elia Zenghelis, Zoe Zenghelis, Madelon Vriesendorp","6956, 7558, 7559, 6957","(Dutch, born 1944) (British, born Greece 1937) (British, born Greece 1937) (Dutch, born 1945)",(Dutch) (British) (British) (Dutch),(1944) (1937) (1937) (1945),(0) (0) (0) (0),(male) (male) (female) (female),1972,"Cut-and-pasted paper, photolithograph, and gelatin silver photographs with ink on paper","16 1/8 x 11 1/2"" (41 x 29.2 cm)","Gift of Patricia Phelps de Cisneros, Takeo Ohbayashi Purchase Fund, and Susan de Menil Purchase Fund",369.1996,Architecture,Architecture & Design,1996-09-25,Y,413,https://www.moma.org/collection/works/413,https://www.moma.org/media/W1siZiIsIjUyNzYwMSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=d894d324caeeb362,,,,,46.0,,,33.3,, +"House for Venice Biennale project, Venice, Italy (Aerial view of model)",Cesar Pelli,7528,"(American, born Argentina 1926)",(American),(1926),(0),(male),1976,Photograph on board,"40 x 40"" (101.6 x 101.6 cm)",Gift of the architect in honor of Philip Johnson,392.1996,Architecture,Architecture & Design,1996-09-25,Y,506,https://www.moma.org/collection/works/506,,,,,,101.6002,,,101.6002,, +"House for Venice Biennale project, Venice, Italy (Collaborators on project)",Cesar Pelli,7528,"(American, born Argentina 1926)",(American),(1926),(0),(male),1976,Photomontage,"40 x 40"" (101.6 x 101.6 cm)",Gift of the architect in honor of Philip Johnson,391.1996,Architecture,Architecture & Design,1996-09-25,Y,501,https://www.moma.org/collection/works/501,,,,,,101.6002,,,101.6002,, +"House for Venice Biennale project, Venice, Italy (Analysis of project)",Cesar Pelli,7528,"(American, born Argentina 1926)",(American),(1926),(0),(male),1976,Photomontage,"40 x 40"" (101.6 x 101.6 cm)",Gift of the architect in honor of Philip Johnson,390.1996,Architecture,Architecture & Design,1996-09-25,Y,496,https://www.moma.org/collection/works/496,,,,,,101.6,,,101.6,, +"House for Venice Biennale project, Venice, Italy (Analysis of project)",Cesar Pelli,7528,"(American, born Argentina 1926)",(American),(1926),(0),(male),1976,Photomontage,"40 x 40"" (101.6 x 101.6 cm)",Gift of the architect in honor of Philip Johnson,389.1996,Architecture,Architecture & Design,1996-09-25,Y,491,https://www.moma.org/collection/works/491,,,,,,101.6002,,,101.6002,, +"House for Venice Biennale project, Venice, Italy (Aerial view)",Cesar Pelli,7528,"(American, born Argentina 1926)",(American),(1926),(0),(male),1976,Photomontage,"40 x 40"" (101.6 x 101.6 cm)",Gift of the architect in honor of Philip Johnson,386.1996,Architecture,Architecture & Design,1996-09-25,Y,477,https://www.moma.org/collection/works/477,,,,,,101.6002,,,101.6002,, +"House for Venice Biennale project, Venice, Italy (Multiple views of project)",Cesar Pelli,7528,"(American, born Argentina 1926)",(American),(1926),(0),(male),1976,Photomontage with colored pencil on board,"40 x 40"" (101.6 x 101.6 cm)",Gift of the architect in honor of Philip Johnson,385.1996,Architecture,Architecture & Design,1996-09-25,Y,473,https://www.moma.org/collection/works/473,,,,,,101.6002,,,101.6002,, +"House for Venice Biennale project, Venice, Italy (View of Model: multiple exterior views of project)",Cesar Pelli,7528,"(American, born Argentina 1926)",(American),(1926),(0),(male),1976,Photomontage with colored pencil on board,"40 x 40"" (101.6 x 101.6 cm)",Gift of the architect in honor of Philip Johnson,384.1996,Architecture,Architecture & Design,1996-09-25,Y,469,https://www.moma.org/collection/works/469,,,,,,101.6002,,,101.6002,, +"House for Venice Biennale project, Venice, Italy (Aerial views)",Cesar Pelli,7528,"(American, born Argentina 1926)",(American),(1926),(0),(male),1976,Photomontage,"40 x 40"" (101.6 x 101.6 cm)",Gift of the architect in honor of Philip Johnson,383.1996,Architecture,Architecture & Design,1996-09-25,Y,465,https://www.moma.org/collection/works/465,,,,,,101.6002,,,101.6002,, +"House for Venice Biennale, project, Venice, Italy, Plans",Cesar Pelli,7528,"(American, born Argentina 1926)",(American),(1926),(0),(male),1976,Color pencil and photostat on board,"40 x 40"" (101.6 x 101.6 cm)",Gift of the architect in honor of Philip Johnson,382.1996,Architecture,Architecture & Design,1996-09-25,Y,461,https://www.moma.org/collection/works/461,https://www.moma.org/media/W1siZiIsIjUyNzYyNiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=d602836e460ad1fd,,,,,102.6,,,102.6,, +"House for Venice Biennale project, Venice, Italy (Written analysis of project)",Cesar Pelli,7528,"(American, born Argentina 1926)",(American),(1926),(0),(male),1976,Photostat on board,"40 x 40"" (101.6 x 101.6 cm)",Gift of the architect in honor of Philip Johnson,381.1996,Architecture,Architecture & Design,1996-09-25,Y,457,https://www.moma.org/collection/works/457,,,,,,101.6002,,,101.6002,, +"House for Venice Biennale project, Venice, Italy (Title board: aerial view of model)",Cesar Pelli,7528,"(American, born Argentina 1926)",(American),(1926),(0),(male),1976,Photomontage,"40 x 40"" (101.6 x 101.6 cm)",Gift of the architect in honor of Philip Johnson,379.1996,Architecture,Architecture & Design,1996-09-25,Y,449,https://www.moma.org/collection/works/449,,,,,,101.6002,,,101.6002,, +"Exodus, or the Voluntary Prisoners of Architecture: The Avowal","Rem Koolhaas, Elia Zenghelis, Zoe Zenghelis, Madelon Vriesendorp","6956, 7558, 7559, 6957","(Dutch, born 1944) (British, born Greece 1937) (British, born Greece 1937) (Dutch, born 1945)",(Dutch) (British) (British) (Dutch),(1944) (1937) (1937) (1945),(0) (0) (0) (0),(male) (male) (female) (female),1972,Cut-and-pasted photolithographs and gelatin silver photographs with ink and watercolor on paper,"11 3/8 x 16"" (28.9 x 40.6 cm)","Gift of Patricia Phelps de Cisneros, Takeo Ohbayashi Purchase Fund, and Susan de Menil Purchase Fund",376.1996,Architecture,Architecture & Design,1996-09-25,Y,438,https://www.moma.org/collection/works/438,https://www.moma.org/media/W1siZiIsIjUyNzYxNSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=b907c216d9244191,,,,,33.0,,,45.7,, +"Exodus, or the Voluntary Prisoners of Architecture: The Allotments","Rem Koolhaas, Elia Zenghelis, Zoe Zenghelis, Madelon Vriesendorp","6956, 7558, 7559, 6957","(Dutch, born 1944) (British, born Greece 1937) (British, born Greece 1937) (Dutch, born 1945)",(Dutch) (British) (British) (Dutch),(1944) (1937) (1937) (1945),(0) (0) (0) (0),(male) (male) (female) (female),1972,Cut-and-pasted photolithographs on paper,"11 1/2 x 15 3/4"" (29.2 x 40 cm)","Gift of Patricia Phelps de Cisneros, Takeo Ohbayashi Purchase Fund, and Susan de Menil Purchase Fund",375.1996,Architecture,Architecture & Design,1996-09-25,Y,435,https://www.moma.org/collection/works/435,https://www.moma.org/media/W1siZiIsIjUyNzYxMyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=af3ccf9fbbcd083e,,,,,33.7,,,44.5,, +"Exodus, or the Voluntary Prisoners of Architecture: The Reception Area","Rem Koolhaas, Elia Zenghelis, Zoe Zenghelis, Madelon Vriesendorp","6956, 7558, 7559, 6957","(Dutch, born 1944) (British, born Greece 1937) (British, born Greece 1937) (Dutch, born 1945)",(Dutch) (British) (British) (Dutch),(1944) (1937) (1937) (1945),(0) (0) (0) (0),(male) (male) (female) (female),1972,Gelatin silver photograph with color ink,"10 1/2 x 14 1/2"" (26.7 x 36.8 cm)","Gift of Patricia Phelps de Cisneros, Takeo Ohbayashi Purchase Fund, and Susan de Menil Purchase Fund",364.1996,Architecture,Architecture & Design,1996-09-25,Y,401,https://www.moma.org/collection/works/401,https://www.moma.org/media/W1siZiIsIjIxMTE3NyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=bfe1b636dc06f842,,,,,30.8,,,41.6,, +"Exodus, or the Voluntary Prisoners of Architecture: Training the New Arrivals (Axonometric projection)","Rem Koolhaas, Elia Zenghelis, Zoe Zenghelis, Madelon Vriesendorp","6956, 7558, 7559, 6957","(Dutch, born 1944) (British, born Greece 1937) (British, born Greece 1937) (Dutch, born 1945)",(Dutch) (British) (British) (Dutch),(1944) (1937) (1937) (1945),(0) (0) (0) (0),(male) (male) (female) (female),1972,Cut-and-pasted photolithographs and gelatin photograph on paper,"10 5/8 x 14 1/2"" (27 x 36.8 cm) +","Gift of Patricia Phelps de Cisneros, Takeo Ohbayashi Purchase Fund, and Susan de Menil Purchase Fund",366.1996,Architecture,Architecture & Design,1996-09-25,Y,406,https://www.moma.org/collection/works/406,https://www.moma.org/media/W1siZiIsIjUyNzU5NyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=8e7e443923ef9a78,,,,,31.8,,,41.3,, +"Kyle Residence, Houston, Texas, Section",Joel Sanders,7566,"(American, born 1956)",(American),(1956),(0),(male),1995,"Cut-and-pasted paper, cut-and-pasted pressure sensitive synthetic polymer sheets, and ink on drafting film over photo-electrostatic print","10 5/8 x 29 9/16"" (26.9 x 75.1 cm)",Gift of the Peter Norton Family Foundation,479.1997.1,Architecture,Architecture & Design,1997-10-17,N,676,,,,,,,26.9,,,75.1,, +"Kyle Residence, Houston, Texas - Section",Joel Sanders,7566,"(American, born 1956)",(American),(1956),(0),(male),1995,"Cut-and-pasted paper, cut-and-pasted pressure sensitive synthetic polymer sheets, and ink on drafting film over photo-electrostatic print","10 5/8 x 29 9/16"" (27 x 75.1 cm)",Gift of the Peter Norton Family Foundation,479.1997.2,Architecture,Architecture & Design,1997-10-17,Y,678,https://www.moma.org/collection/works/678,https://www.moma.org/media/W1siZiIsIjI2Njk3OSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=fb020a1ab30bba73,,,,,26.9876,,,75.0889,, +"Kyle Residence, Houston, Texas, Plan and perspective",Joel Sanders,7566,"(American, born 1956)",(American),(1956),(0),(male),1995,"Cut-and-pasted paper, cut-and-pasted pressure sensitive synthetic polymer sheets, and ink on drafting film over photo-electrostatic print","23 x 24"" (58.4 x 61 cm)",Gift of the Peter Norton Family Foundation,275.1999,Architecture,Architecture & Design,1999-06-30,Y,302,https://www.moma.org/collection/works/302,https://www.moma.org/media/W1siZiIsIjUyODUzOCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=af3a7e6396698f41,,,,,58.4,,,61.0,, +"Kyle Residence, Houston, Texas, Plan",Joel Sanders,7566,"(American, born 1956)",(American),(1956),(0),(male),1995,"Cut-and-pasted paper, cut-and-pasted pressure sensitive synthetic polymer sheets, and ink on drafting film over photo-electrostatic print","11 x 12"" (28 x 30.5 cm)",Gift of the Peter Norton Family Foundation,276.1999,Architecture,Architecture & Design,1999-06-30,Y,303,https://www.moma.org/collection/works/303,https://www.moma.org/media/W1siZiIsIjUyODUzOSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=d21de4b0be284110,,,,,28.0,,,30.5,, +"Plug-in University Node, project (Elevation)",Peter Cook,6950,"(British, born 1936)",(British),(1936),(0),(male),1965,Watercolor on photolithograph,"26 1/8 x 34 1/2"" (66.4 x 87.6 cm)",Gift of The Howard Gilman Foundation,1187.2000,Architecture,Architecture & Design,2000-10-31,Y,798,https://www.moma.org/collection/works/798,https://www.moma.org/media/W1siZiIsIjUzMDA4MSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=b47c9019a0b3fa29,,,4.8,,83.2,,,103.5,, +"Plug-in City: Maximum Pressure Area, project (Section)",Peter Cook,6950,"(British, born 1936)",(British),(1936),(0),(male),1964,Ink and gouache on photomechanical print,"32 7/8 x 57 11/16"" (83.5 x 146.5 cm)",Gift of The Howard Gilman Foundation,1186.2000,Architecture,Architecture & Design,2000-10-31,Y,797,https://www.moma.org/collection/works/797,https://www.moma.org/media/W1siZiIsIjUzMDA3OSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=785825ab24d898db,,,3.8,,94.6,,,156.8,, +"Walking City on the Ocean, project (Exterior perspective)",Ron Herron,8113,"(British, 1930–1994)",(British),(1930),(1994),(male),1966,Cut-and-pasted printed and photographic papers and graphite covered with polymer sheet,"11 1/2 x 17"" (29.2 x 43.2 cm) +",Gift of The Howard Gilman Foundation,1203.2000,Architecture,Architecture & Design,2000-10-31,Y,814,https://www.moma.org/collection/works/814,https://www.moma.org/media/W1siZiIsIjUzMDExMSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=1f3fd9fe70c81120,,,,,29.2,,,43.2,, +"Bank and Office Building, project, Stuttgart, Germany, Perspective, elevations and axonometrics of Hindenburgplatz",Ernst Stahl,26134,"(German, 1882–1957)",(German),(1882),(1957),(male),1928,"Colored ink, black ink, metallic ink, graphite with cut and pasted painted silver-gelatin photographs and cut and pasted painted papers","39 15/16 x 50"" (101.5 x 127 cm)",Mies van der Rohe Archive Purchase,99.2003,Architecture,Architecture & Design,2003-05-13,N,88148,,,,,,,101.5,,,127.0,, +"Bank and Office Building, project, Stuttgart, Germany, Perspective and site plan of Hindenburgplatz","Wetzel, Schuhmacher","26132, 26133",,() (),(0) (0),(0) (0),() (),1928,".1: Silver-gelatin photograph with graphite, ink, cut and pasted papers .2: Ink, graphite and crayon","29 15/16 x 39 15/16"" (76 x 101.5 cm)",Mies van der Rohe Archive Purchase,101.2003.1-2,Architecture,Architecture & Design,2003-05-13,N,88146,,,,,,,76.0,,,101.5,, +"Bank and Office Building, project, Stuttgart, Germany, Perspectives, propsals for neon signs",Alfred Fischer,26130,"(German, 1881–1950)",(German),(1881),(1950),(male),1928,"Silver-gelatin photograph with gouache, ink, graphite, colored ink with cut and pasted painted silver-gelatin photo","22 1/16 x 28 1/8"" (56 x 71.5 cm)",Mies van der Rohe Archive Purchase,81.2003,Architecture,Architecture & Design,2003-05-13,Y,88142,https://www.moma.org/collection/works/88142,https://www.moma.org/media/W1siZiIsIjE3NTE0NiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=114744d45af9c4c2,,,,,56.0,,,71.5,, +"Bank and Office Building, project, Stuttgart, Germany, Perspective",Adolf Abel,26129,"(German, born France. 1882–1968)",(German),(1882),(1968),(male),1928,"Silver-gelatin photograph, ink and graphite","14 x 18 1/8"" (35.5 x 46 cm)",Mies van der Rohe Archive Purchase,77.2003,Architecture,Architecture & Design,2003-05-13,Y,88140,https://www.moma.org/collection/works/88140,https://www.moma.org/media/W1siZiIsIjE3NTE0MyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=3666291292d26e8d,,,,,35.5,,,46.0,, +"Bank and Office Building, project, Stuttgart, Germany, Model","G. Schleicher, Konstanty Gutschow","26125, 26126","(German, 1902–1978)",() (German),(0) (1902),(0) (1978),() (male),1928,Silver-gelatin photograph,"29 15/16 x 39 15/16"" (76 x 101.5 cm)",Mies van der Rohe Archive Purchase,94.2003,Architecture,Architecture & Design,2003-05-13,N,88136,,,,,,,76.0,,,101.5,, +"Bank and Office Building, project, Stuttgart, Germany, Perspective","G. Schleicher, Konstanty Gutschow","26125, 26126","(German, 1902–1978)",() (German),(0) (1902),(0) (1978),() (male),1928,"Silver-gelatin photograph, gouache, graphite, watercolor and color pencil","14 x 18 1/8"" (35.5 x 46 cm)",Mies van der Rohe Archive Purchase,93.2003,Architecture,Architecture & Design,2003-05-13,Y,88135,https://www.moma.org/collection/works/88135,https://www.moma.org/media/W1siZiIsIjE3NTE2NSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=ace94e5e7b6ef09d,,,,,35.5,,,46.0,, +"Bank and Office Building, project, Stuttgart, Germany, Perspective","Paul Bonatz, Friedrich Eugen Scholer","26123, 26124","(German, 1877–1956) (German, 1874–1949)",(German) (German),(1877) (1874),(1956) (1949),(male) (male),1928,"Silver-gelatin photograph, color pencil and graphite","14 x 18 1/8"" (35.5 x 46 cm)",Mies van der Rohe Archive Purchase,79.2003,Architecture,Architecture & Design,2003-05-13,Y,88134,https://www.moma.org/collection/works/88134,https://www.moma.org/media/W1siZiIsIjE3NTE0NSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=e55faff0c59b63de,,,,,35.5,,,46.0,, +"Bank and Office Building project, Stuttgart, Germany (Perspective view from Hindenburgplatz)",Ludwig Mies van der Rohe,7166,"(American, born Germany. 1886–1969)",(American),(1886),(1969),(male),1928,Graphite and crayon on gelatin-silver photograph,"37 13/16 x 59 1/8"" (96 x 150.2 cm)","Mies van der Rohe Archive, Gift of Patricia Phelps de Cisneros",90.2003,Architecture,Architecture & Design,2003-05-13,Y,88055,https://www.moma.org/collection/works/88055,https://www.moma.org/media/W1siZiIsIjI2NDA3MyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=e852c883ca066422,,,,,96.0439,,,150.1778,, +"Bank and Office Building, project, Stuttgart, Germany, Perspective",Adolf Gustav Friedrich Schneck,26128,"(German, 1883–1971)",(German),(1883),(1971),(male),1928,"Silver-gelatin photograph, gouache and graphite","14 x 18 1/8"" (35.5 x 46 cm)",Mies van der Rohe Archive Purchase,96.2003,Architecture,Architecture & Design,2003-05-13,Y,88139,https://www.moma.org/collection/works/88139,https://www.moma.org/media/W1siZiIsIjE3NTE2NiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=1c4146fe63306a28,,,,,35.5,,,46.0,, +"Terrain, project",Lebbeus Woods,26299,"(American, 1940–2012)",(American),(1940),(2012),(male),1999,"Photocopy with felt-tipped marker, colored pencil and graphite on paper with sanding mounted to board","Each: 19 3/8 x 23 3/8"" (49.2 x 59.4 cm)",Craig Robins Purchase Fund,222.2003,Architecture,Architecture & Design,2003-10-02,Y,88851,https://www.moma.org/collection/works/88851,https://www.moma.org/media/W1siZiIsIjI2Mzg1MyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=142fbfdfc6d902c1,,,,,49.2126,,,59.3726,, +"Terrain, project",Lebbeus Woods,26299,"(American, 1940–2012)",(American),(1940),(2012),(male),1999,"Photocopy with felt-tipped marker, ink and colored pencil on paper with sanding mounted to board","Each: 19 3/8 x 23 3/8"" (49.2 x 59.4 cm)",Craig Robins Purchase Fund,224.2003,Architecture,Architecture & Design,2003-10-02,Y,88853,https://www.moma.org/collection/works/88853,https://www.moma.org/media/W1siZiIsIjI2Mzg1NSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=818a1fe3d10804ab,,,,,49.2126,,,59.3726,, +"Terrain, project",Lebbeus Woods,26299,"(American, 1940–2012)",(American),(1940),(2012),(male),1999,"Photocopy with felt-tipped marker, ink and colored pencil on paper with sanding mounted to board","Each: 19 3/8 x 23 3/8"" (49.2 x 59.4 cm)",Craig Robins Purchase Fund,223.2003,Architecture,Architecture & Design,2003-10-02,Y,88852,https://www.moma.org/collection/works/88852,https://www.moma.org/media/W1siZiIsIjI2Mzg1NCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=4f8a2402b5ab2ef0,,,,,49.2126,,,59.3726,, +"Terrain, project",Lebbeus Woods,26299,"(American, 1940–2012)",(American),(1940),(2012),(male),1999,"Photocopy with felt-tipped marker, colored pencil and graphite on paper with sanding mounted to board","Each: 19 3/8 x 23 3/8"" (49.2 x 59.4 cm)",Craig Robins Purchase Fund,221.2003,Architecture,Architecture & Design,2003-10-02,Y,88850,https://www.moma.org/collection/works/88850,https://www.moma.org/media/W1siZiIsIjI2Mzg1MSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=392577321a7a68c9,,,,,49.2126,,,59.3726,, +"Terrain, project",Lebbeus Woods,26299,"(American, 1940–2012)",(American),(1940),(2012),(male),1999,"Photocopy with felt-tipped marker, ink and colored pencil on paper with sanding mounted to board","Each: 19 3/8 x 23 3/8"" (49.2 x 59.4 cm)",Gift of the A+D Circle,215.2003,Architecture,Architecture & Design,2003-10-02,Y,88500,https://www.moma.org/collection/works/88500,https://www.moma.org/media/W1siZiIsIjI2Mzg0NCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=0a9d998f26c50d33,,,,,49.2126,,,59.3726,, +"Terrain, project",Lebbeus Woods,26299,"(American, 1940–2012)",(American),(1940),(2012),(male),1999,"Photocopy with felt-tipped marker, graphite and colored pencil on paper with sanding mounted to board","Each: 19 3/8 x 23 3/8"" (49.2 x 59.4 cm)",Gift of the A+D Circle,219.2003,Architecture,Architecture & Design,2003-10-02,Y,88848,https://www.moma.org/collection/works/88848,https://www.moma.org/media/W1siZiIsIjI2Mzg0OSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=c08e3afabb0a6d31,,,,,49.2126,,,59.3726,, +"Terrain, project",Lebbeus Woods,26299,"(American, 1940–2012)",(American),(1940),(2012),(male),1999,"Photocopy with felt-tipped marker, ink and colored pencil on paper with sanding mounted to board","Each: 19 3/8 x 23 3/8"" (49.2 x 59.4 cm)",Gift of the A+D Circle,218.2003,Architecture,Architecture & Design,2003-10-02,Y,88847,https://www.moma.org/collection/works/88847,https://www.moma.org/media/W1siZiIsIjI2Mzg0OCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=ada98f7b9258af9b,,,,,49.2126,,,59.3726,, +"Terrain, project",Lebbeus Woods,26299,"(American, 1940–2012)",(American),(1940),(2012),(male),1999,"Photocopyt with felt-tipped marker, ink and colored pencil on paper with sanding mounted to board","Each: 19 3/8 x 23 3/8"" (49.2 x 59.4 cm)",Gift of the A+D Circle,217.2003,Architecture,Architecture & Design,2003-10-02,Y,88846,https://www.moma.org/collection/works/88846,https://www.moma.org/media/W1siZiIsIjI2Mzg0NyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=de0278805b3c20df,,,,,49.2126,,,59.3726,, +"Terrain, project",Lebbeus Woods,26299,"(American, 1940–2012)",(American),(1940),(2012),(male),1999,"Photocopy with felt-tipped marker, ink and colored pencil on paper with sanding mounted to board","Each: 19 3/8 x 23 3/8"" (49.2 x 59.4 cm)",Gift of the A+D Circle,216.2003,Architecture,Architecture & Design,2003-10-02,Y,88845,https://www.moma.org/collection/works/88845,https://www.moma.org/media/W1siZiIsIjI2Mzg0NiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=7bc1e0d5861daf62,,,,,49.2126,,,59.3726,, +Terrain Project,Lebbeus Woods,26299,"(American, 1940–2012)",(American),(1940),(2012),(male),1999,"Photocopy with felt-tipped marker, ink, colored pencil and cut and pasted printed paper with felt-tipped marker on paper with sanding mounted to board","Each: 19 3/8 x 23 3/8"" (49.2 x 59.4 cm)",Craig Robins Purchase Fund,220.2003,Architecture,Architecture & Design,2003-10-02,Y,88849,https://www.moma.org/collection/works/88849,https://www.moma.org/media/W1siZiIsIjcwMDg4Il0sWyJwIiwiY29udmVydCIsIi1yZXNpemUgMTAyNHgxMDI0XHUwMDNlIl1d.jpg?sha=71403b7e9d3b728a,,,,,49.2126,,,59.3726,, +"Aktion Poliphile: Hypnerotomachia Ero/machia/hypniahouse, project, Wiesbaden, Germany, Site plan","Jesse Reiser, Nanako Umemoto, Reiser + Umemoto RUR Architecture PC","26361, 26362, 26363","(American, born 1958) (Japanese) (USA, est. 1986)",(American) (American) (American),(1958) (0) (1986),(0) (0) (0),(male) (female) (),1989,Cut and pasted photostat on photostat,"20 1/2 x 26 1/4"" (52.1 x 66.7 cm)",Mrs. Gianluigi Gabetti Purchase Fund,335.2004,Architecture,Architecture & Design,2004-04-22,Y,88998,https://www.moma.org/collection/works/88998,https://www.moma.org/media/W1siZiIsIjcxMDU1Il0sWyJwIiwiY29udmVydCIsIi1yZXNpemUgMTAyNHgxMDI0XHUwMDNlIl1d.jpg?sha=c6318461587be464,,,,,52.0701,,,66.6751,, +"Aktion Poliphile: Hypnerotomachia Ero/machia/hypniahouse, project, Wiesbaden, Germany, Three plans: ground floor, second floor, third floor","Jesse Reiser, Nanako Umemoto","26361, 26362","(American, born 1958) (Japanese)",(American) (American),(1958) (0),(0) (0),(male) (female),1989,Pressure sensitive printed polymer sheet and pressure sensitive transfer type on photostat,"23 3/4 x 35 3/4"" (60.3 x 90.8 cm)",Suzanne Slesin Purchase Fund,337.2004,Architecture,Architecture & Design,2004-04-22,Y,88999,https://www.moma.org/collection/works/88999,https://www.moma.org/media/W1siZiIsIjcxMDU2Il0sWyJwIiwiY29udmVydCIsIi1yZXNpemUgMTAyNHgxMDI0XHUwMDNlIl1d.jpg?sha=a5fce4950bad4831,,,,,60.3251,,,90.8052,, +"Aktion Poliphile: Hypnerotomachia Ero/machia/hypniahouse, project, Wiesbaden, Germany, So schauten kranke Geister die Natur","Jesse Reiser, Nanako Umemoto","26361, 26362","(American, born 1958) (Japanese)",(American) (American),(1958) (0),(0) (0),(male) (female),1989,Photostat,"20 3/4 x 31 3/4"" (52.7 x 80.6 cm)",Mrs. Gianluigi Gabetti Purchase Fund,336.2004,Architecture,Architecture & Design,2004-04-22,Y,89002,https://www.moma.org/collection/works/89002,https://www.moma.org/media/W1siZiIsIjcxMDU5Il0sWyJwIiwiY29udmVydCIsIi1yZXNpemUgMTAyNHgxMDI0XHUwMDNlIl1d.jpg?sha=43be9cba0afd4329,,,,,52.7051,,,80.6452,, +City 47 Project,Laurids Ortner,7561,"(Austrian, born 1941)",(Austrian),(1941),(0),(male),1967,Cut-and-pasted silver gelatin photographs with graphite mounted on board,"23 1/2 x 39 3/8"" (59.7 x 100 cm)",Gift of Patricia Phelps de Cisneros and David Childs Purchase Fund,484.2004,Architecture,Architecture & Design,2004-10-14,Y,91897,https://www.moma.org/collection/works/91897,https://www.moma.org/media/W1siZiIsIjI0NTEyMSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=8f1e503b327e3119,,,,,59.6901,,,100.0,, +"Palmtree Island (Oasis) Project, New York, New York, Perspective","Haus-Rucker-Co, Laurids Ortner, Manfred Ortner, Günter Zamp Kelp, Klaus Pinter","8412, 7561, 7562, 8413, 8414","(Austrian, est. 1967–1992) (Austrian, born 1941) (Austrian, born 1943) (Austrian, born 1941) (Austrian, born 1940)",(Austrian) (Austrian) (Austrian) (Austrian) (Austrian),(1967) (1941) (1943) (1941) (1940),(1992) (0) (0) (0) (0),() (male) (male) (male) (male),1971,Cut-and-pasted printed paper with gouache and graphite and cut-and-pasted painted paper on silver gelatin photograph on board,"19 3/4 x 29 5/8"" (50.2 x 75.2 cm)",Wendy Evans Joseph Purchase Fund,482.2004,Architecture,Architecture & Design,2004-10-14,Y,91898,https://www.moma.org/collection/works/91898,https://www.moma.org/media/W1siZiIsIjEwMDk3NyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=53cfcbb211ec9699,,,,,50.1651,,,75.2477,, +"Hospital, Venice 1962–65. Elevation",Le Corbusier (Charles-Édouard Jeanneret),3426,"(French, born Switzerland. 1887–1965)",(French),(1887),(1965),(male),1967,"Cut-and-pasted silver gelatin photograph and cut-and-pasted paper on paper with graphite, color pencil, ballpoint pen and ink stamp","17 3/4 x 214 1/2"" (45.1 x 544.8 cm) +Frame: 21 x 218 3/4"" (53.3 x 555.6 cm)","Don Goeman Purchase Fund, Phyllis Lambert Purchase Fund, and Michael Maharam Purchase Fund",483.2004,Architecture,Architecture & Design,2004-10-14,Y,93640,https://www.moma.org/collection/works/93640,https://www.moma.org/media/W1siZiIsIjI1NTg0MCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=5e5ded4c5d15fe8d,,,,,45.0851,,,544.8311,, +"Paulistano Athletic Club Gymnasium, São Paulo, Brazil, Elevation",Paulo Mendes da Rocha,33388,"(Brazilian, 1928 – 2021)",(Brazilian),(1928),(2021),(male),1957,Photostat,"17 x 36 1/8"" (43.2 x 91.8 cm)",Gift of the architect and the Latin American and Caribbean Fund,2.2008,Architecture,Architecture & Design,2008-02-06,Y,113343,https://www.moma.org/collection/works/113343,,,,,,43.1801,,,91.7577,, +"Brazilian Museum of Sculpture, São Paulo, Brazil, Plan and section of auditorium",Paulo Mendes da Rocha,33388,"(Brazilian, 1928 – 2021)",(Brazilian),(1928),(2021),(male),1988,Photostat,"36 x 43"" (91.4 x 109.2 cm)",Gift of the architect and the Latin American and Caribbean Fund,12.2008,Architecture,Architecture & Design,2008-02-06,Y,113341,https://www.moma.org/collection/works/113341,,,,,,91.4402,,,109.2202,, +"Brazilian Museum of Sculpture, São Paulo, Brazil, Section C and D",Paulo Mendes da Rocha,33388,"(Brazilian, 1928 – 2021)",(Brazilian),(1928),(2021),(male),1988,Photostat,"36 x 43"" (91.4 x 109.2 cm)",Gift of the architect and the Latin American and Caribbean Fund,11.2008,Architecture,Architecture & Design,2008-02-06,Y,113340,https://www.moma.org/collection/works/113340,,,,,,91.4402,,,109.2202,, +"Brazilian Museum of Sculpture, São Paulo, Brazil, Section A and B",Paulo Mendes da Rocha,33388,"(Brazilian, 1928 – 2021)",(Brazilian),(1928),(2021),(male),1988,Photostat,"36 x 43"" (91.4 x 109.2 cm)",Gift of the architect and the Latin American and Caribbean Fund,10.2008,Architecture,Architecture & Design,2008-02-06,Y,113339,https://www.moma.org/collection/works/113339,,,,,,91.4402,,,109.2202,, +"Brazilian Museum of Sculpture, São Paulo, Brazil, Sub-floor plan",Paulo Mendes da Rocha,33388,"(Brazilian, 1928 – 2021)",(Brazilian),(1928),(2021),(male),1988,Photostat,"36 x 53 1/4"" (91.4 x 135.3 cm)",Gift of the architect and the Latin American and Caribbean Fund,13.2008,Architecture,Architecture & Design,2008-02-06,Y,111254,https://www.moma.org/collection/works/111254,,,,,,91.4402,,,135.2553,, +"Paulistano Athletic Club Gymnasium, São Paulo, Brazil, Plan",Paulo Mendes da Rocha,33388,"(Brazilian, 1928 – 2021)",(Brazilian),(1928),(2021),(male),1957,Photostat,"17 x 36 1/8"" (43.2 x 91.8 cm)",Gift of the architect and the Latin American and Caribbean Fund,1.2008,Architecture,Architecture & Design,2008-02-06,Y,111260,https://www.moma.org/collection/works/111260,,,,,,43.1801,,,91.7577,, +"Paulistano Athletic Club Gymnasium, São Paulo, Brazil, Perspective Sketch",Paulo Mendes da Rocha,33388,"(Brazilian, 1928 – 2021)",(Brazilian),(1928),(2021),(male),1957,Photostat,"11 5/8 x 8 1/4"" (29.5 x 21 cm)",Gift of the architect and the Latin American and Caribbean Fund,3.2008,Architecture,Architecture & Design,2008-02-06,Y,111259,https://www.moma.org/collection/works/111259,https://www.moma.org/media/W1siZiIsIjE3NTEzNSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=4b37625fad43d97e,,,,,29.5276,,,20.955,, +"House in Catanduva, São Paulo, Brazil, project, Section BB, plan of garden and pool, Plan, Section AA, section from North to South",Paulo Mendes da Rocha,33388,"(Brazilian, 1928 – 2021)",(Brazilian),(1928),(2021),(male),1979,Photostat,"69 x 36"" (175.3 x 91.4 cm)",Gift of the architect and the Latin American and Caribbean Fund,7.2008,Architecture,Architecture & Design,2008-02-06,Y,111256,https://www.moma.org/collection/works/111256,,,,,,175.2604,,,91.4402,, +"Brazilian Museum of Sculpture, São Paulo, Brazil, floor plan",Paulo Mendes da Rocha,33388,"(Brazilian, 1928 – 2021)",(Brazilian),(1928),(2021),(male),1988,Photostat,"36 x 53 1/4"" (91.4 x 135.3 cm)",Gift of the architect and the Latin American and Caribbean Fund,9.2008,Architecture,Architecture & Design,2008-02-06,Y,113338,https://www.moma.org/collection/works/113338,,,,,,91.4402,,,135.2553,, +"Tower Stripped Bare by Time Even Project, New York, NY,","Frank Lupo, Daniel Rowen","36442, 36443","(American, born 1950) (American, 1953–2009)",(American) (American),(1950) (1953),(0) (2009),(male) (male),1984,Photo collage on paper,"40 x 30"" (101.6 x 76.2 cm)",Gift of the architects,72.2009,Architecture,Architecture & Design,2009-01-14,Y,125760,https://www.moma.org/collection/works/125760,,,,,,101.6002032004,,,76.2001524003,, +Stairway to Heaven,Didier Faustino,41635,"(French, born Portugal, 1968)",(French),(1968),(0),(male),2002,"model, print, and photograph",various,Gift of the artist and Galerie Michel Rein,917.2012.1-3,Architecture,Architecture & Design,2012-06-07,N,162453,,,,,,,,,,,, +"SAAL S. Victor Social Housing, Porto, Portugal",Álvaro Siza,29732,"(Portuguese, born 1933)",(Portuguese),(1933),(0),(male),1974-1977,Photograph,"5 5/16 x 3 9/16"" (13.5 x 9 cm)",Architecture & Design Purchase Fund,961.2012,Architecture,Architecture & Design,2012-06-07,Y,161469,https://www.moma.org/collection/works/161469,https://www.moma.org/media/W1siZiIsIjI1NTg1NyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=593b2dc81a4754b4,,,,,13.5,,,9.0,, +Stairway to Heaven,Didier Faustino,41635,"(French, born Portugal, 1968)",(French),(1968),(0),(male),2002,Photograph,"29 5/8 x 22 1/8"" (75.2 x 56.2 cm)",Gift of the artist and Galerie Michel Rein,917.2012.3,Architecture,Architecture & Design,2012-06-07,N,160438,,,,,,,75.2476504953,,,56.1976123952,, +Double Happiness (Photograph of the installation at the Shenzhen-Hong Kong Bi-City Biennale of Urbanism and Architecture),Didier Faustino,41635,"(French, born Portugal, 1968)",(French),(1968),(0),(male),2009,Photograph on Baryta paper,"29 1/2 x 22 1/16"" (74.9 x 56 cm)",Architecture & Design Purchase Fund,918.2012.3,Architecture,Architecture & Design,2012-06-07,Y,159014,https://www.moma.org/collection/works/159014,https://www.moma.org/media/W1siZiIsIjI2MjczNiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=7b507efbc54aba21,,,,,74.9301498603,,,56.0388620777,, +Double Happiness (Installation at the Shenzhen-Hong Kong Bi-City Biennial of Urbanism and Architecture),Didier Faustino,41635,"(French, born Portugal, 1968)",(French),(1968),(0),(male),2009,"Model, print and photograph",,Purchase,918.2012.1-3,Architecture,Architecture & Design,2012-06-07,N,159002,,,,,,,,,,,, +Cantiere Barca (Boat Yard),raumlaborberlin,41718,,(),(0),(0),(),2011,"Film (dvd), drawing on paper, and three AP photographs",".1 dvd +.2 sheet, approx 31 x 46"" +.3-7 each approx 16 1/2 x 23 1/2""",Purchase,816.2012.1-7,Architecture,Architecture & Design,2012-06-07,N,159833,,,,,,,,,,,, +"Olympic Sculpture Park, Seattle","Michael Manfredi, Marion Weiss","42566, 42567","(American) (American, born 1957)",(American) (American),(0) (1957),(0) (0),(male) (female),2001,Charcoal and photo collage on paper,"11 x 17"" (27.9 x 43.2 cm)",Gift of the architects,1727.2012.1,Architecture,Architecture & Design,2012-10-15,Y,163993,https://www.moma.org/collection/works/163993,https://www.moma.org/media/W1siZiIsIjI2MzM3MiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=5c3669c40cb69456,,,,,27.9400558801,,,43.1800863602,, +"Olympic Sculpture Park, Seattle","Michael Manfredi, Marion Weiss","42566, 42567","(American) (American, born 1957)",(American) (American),(0) (1957),(0) (0),(male) (female),2001,Charcoal and photo collage on paper,"11 x 17"" (27.9 x 43.2 cm)",Gift of the architects,1727.2012.2,Architecture,Architecture & Design,2012-10-15,Y,163994,https://www.moma.org/collection/works/163994,https://www.moma.org/media/W1siZiIsIjI2MzM3MyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=4e93416e0decc2fe,,,,,27.9400558801,,,43.1800863602,, +"Olympic Sculpture Park, Seattle","Michael Manfredi, Marion Weiss","42566, 42567","(American) (American, born 1957)",(American) (American),(0) (1957),(0) (0),(male) (female),2001,Charcoal and photo collage on paper,"11 x 17"" (27.9 x 43.2 cm)",Gift of the architects,1727.2012.3,Architecture,Architecture & Design,2012-10-15,Y,163995,https://www.moma.org/collection/works/163995,https://www.moma.org/media/W1siZiIsIjI2MzM3NCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=a58fe89dbb6cac7d,,,,,27.9400558801,,,43.1800863602,, +"Olympic Sculpture Park, Seattle","Michael Manfredi, Marion Weiss","42566, 42567","(American) (American, born 1957)",(American) (American),(0) (1957),(0) (0),(male) (female),2001,Charcoal and photo collage on paper,"11 x 17"" (27.9 x 43.2 cm)",Gift of the architects,1727.2012.4,Architecture,Architecture & Design,2012-10-15,Y,163996,https://www.moma.org/collection/works/163996,https://www.moma.org/media/W1siZiIsIjI2MzM3NSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=8874fcc0be574184,,,,,27.9400558801,,,43.1800863602,, +"Olympic Sculpture Park, Seattle","Michael Manfredi, Marion Weiss","42566, 42567","(American) (American, born 1957)",(American) (American),(0) (1957),(0) (0),(male) (female),2001,Charcoal and photo collage on paper,"11 x 17"" (27.9 x 43.2 cm)",Gift of the architects,1727.2012.5,Architecture,Architecture & Design,2012-10-15,Y,163997,https://www.moma.org/collection/works/163997,https://www.moma.org/media/W1siZiIsIjI2MzM3NiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=0b372d8e2f1b6cf8,,,,,27.9400558801,,,43.1800863602,, +"Oro Azul Pavilion, Feria Anual de la Industria Argentina, Buenos Aires, Argentina","Mario Gandelsonas, Diana Agrest","44767, 44768","(American, born Argentina, 1938) (American, born Argentina, 1945)",(American) (American),(1938) (1945),(0) (0),(male) (female),1969,Photograph,,Gift of Mario Gandelsonas and Diana Agrest,299.2014.13,Architecture,Architecture & Design,2014-05-19,N,175380,,,,,,,0.0,,,0.0,, +"Oro Azul Pavilion, Feria Anual de la Industria Argentina, Buenos Aires, Argentina","Mario Gandelsonas, Diana Agrest","44767, 44768","(American, born Argentina, 1938) (American, born Argentina, 1945)",(American) (American),(1938) (1945),(0) (0),(male) (female),1969,Photograph,,Gift of Mario Gandelsonas and Diana Agrest,299.2014.12,Architecture,Architecture & Design,2014-05-19,N,175379,,,,,,,0.0,,,0.0,, +"Oro Azul Pavilion, Feria Anual de la Industria Argentina, Buenos Aires, Argentina","Mario Gandelsonas, Diana Agrest","44767, 44768","(American, born Argentina, 1938) (American, born Argentina, 1945)",(American) (American),(1938) (1945),(0) (0),(male) (female),1969,Photograph,,Gift of Mario Gandelsonas and Diana Agrest,299.2014.11,Architecture,Architecture & Design,2014-05-19,N,175378,,,,,,,0.0,,,0.0,, +"Oro Azul Pavilion, Feria Anual de la Industria Argentina, Buenos Aires, Argentina","Mario Gandelsonas, Diana Agrest","44767, 44768","(American, born Argentina, 1938) (American, born Argentina, 1945)",(American) (American),(1938) (1945),(0) (0),(male) (female),1969,Photograph,,Gift of Mario Gandelsonas and Diana Agrest,299.2014.10,Architecture,Architecture & Design,2014-05-19,N,175377,,,,,,,0.0,,,0.0,, +"Oro Azul Pavilion, Feria Anual de la Industria Argentina, Buenos Aires, Argentina","Mario Gandelsonas, Diana Agrest","44767, 44768","(American, born Argentina, 1938) (American, born Argentina, 1945)",(American) (American),(1938) (1945),(0) (0),(male) (female),1969,Photograph,,Gift of Mario Gandelsonas and Diana Agrest,299.2014.7,Architecture,Architecture & Design,2014-05-19,N,175374,,,,,,,0.0,,,0.0,, +"Oro Azul Pavilion, Feria Anual de la Industria Argentina, Buenos Aires, Argentina","Mario Gandelsonas, Diana Agrest","44767, 44768","(American, born Argentina, 1938) (American, born Argentina, 1945)",(American) (American),(1938) (1945),(0) (0),(male) (female),1969,Photograph,,Gift of Mario Gandelsonas and Diana Agrest,299.2014.8,Architecture,Architecture & Design,2014-05-19,N,175375,,,,,,,0.0,,,0.0,, +"Oro Azul Pavilion, Feria Anual de la Industria Argentina, Buenos Aires, Argentina","Mario Gandelsonas, Diana Agrest","44767, 44768","(American, born Argentina, 1938) (American, born Argentina, 1945)",(American) (American),(1938) (1945),(0) (0),(male) (female),1969,Photograph,,Gift of Mario Gandelsonas and Diana Agrest,299.2014.6,Architecture,Architecture & Design,2014-05-19,N,175373,,,,,,,0.0,,,0.0,, +"Oro Azul Pavilion, Feria Anual de la Industria Argentina, Buenos Aires, Argentina","Mario Gandelsonas, Diana Agrest","44767, 44768","(American, born Argentina, 1938) (American, born Argentina, 1945)",(American) (American),(1938) (1945),(0) (0),(male) (female),1969,Photograph,,Gift of Mario Gandelsonas and Diana Agrest,299.2014.5,Architecture,Architecture & Design,2014-05-19,N,175372,,,,,,,0.0,,,0.0,, +"Oro Azul Pavilion, Feria Anual de la Industria Argentina, Buenos Aires, Argentina","Mario Gandelsonas, Diana Agrest","44767, 44768","(American, born Argentina, 1938) (American, born Argentina, 1945)",(American) (American),(1938) (1945),(0) (0),(male) (female),1969,Photograph,,Gift of Mario Gandelsonas and Diana Agrest,299.2014.9,Architecture,Architecture & Design,2014-05-19,N,175376,,,,,,,0.0,,,0.0,, +Oasis no. 7,"Haus-Rucker-Co, Günter Zamp Kelp, Laurids Ortner, Manfred Ortner, Klaus Pinter","8412, 8413, 7561, 7562, 8414","(Austrian, est. 1967–1992) (Austrian, born 1941) (Austrian, born 1941) (Austrian, born 1943) (Austrian, born 1940)",(Austrian) (Austrian) (Austrian) (Austrian) (Austrian),(1967) (1941) (1941) (1943) (1940),(1992) (0) (0) (0) (0),() (male) (male) (male) (male),1972,Photocollage and pencil on paper,"23 5/8 x 31 1/2"" (60 x 80 cm)",Committee on Architecture and Design Funds,684.2014.2,Architecture,Architecture & Design,2014-10-06,Y,185730,https://www.moma.org/collection/works/185730,https://www.moma.org/media/W1siZiIsIjMzNzY0NSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=3f15181711c2eb4d,,,,,60.0,,,80.0,, +"Fate, San Fernando, Buenos Aires, Argentina","Flora Manteola, Javier Sánchez Gómez, Josefa Santos, Justo Solsona, Carlos Sallaberry","44160, 44161, 44162, 44163, 46149","(Argentine, born 1936) (Argentine, born 1936) (Argentine, born 1931) (Argentine, born 1931) (Argentine)",(Argentine) (Argentine) (Argentine) (Argentine) (Argentine),(1936) (1936) (1931) (1931) (0),(0) (0) (0) (0) (0),(female) (male) (female) (male) (male),1985,photographs,various,Gift of MSGSSS,749.2014.1-6,Architecture,Architecture & Design,2014-10-06,N,187515,,,,,,,,,,,, +"Barrio Piedrabuena, Buenos Aires, Argentina","Flora Manteola, Javier Sánchez Gómez, Josefa Santos, Justo Solsona, Carlos Sallaberry, Rafael Viñoly, Felipe Tarsitano","44160, 44161, 44162, 44163, 46149, 7229, 46151","(Argentine, born 1936) (Argentine, born 1936) (Argentine, born 1931) (Argentine, born 1931) (Argentine) (American, born Uruguay 1944) (Argentine)",(Argentine) (Argentine) (Argentine) (Argentine) (Argentine) (American) (Argentine),(1936) (1936) (1931) (1931) (0) (1944) (0),(0) (0) (0) (0) (0) (0) (0),(female) (male) (female) (male) (male) (male) (male),1974,photographs,various,Gift of MSGSSS,747.2014.1-10,Architecture,Architecture & Design,2014-10-06,N,187511,,,,,,,,,,,, +"Casa La Villa, La Dehesa, Chile",Juan Baixas,45185,"(Chilean, born 1942)",(Chilean),(1942),(0),(male),1980,Photo collage on paper,"8 1/2 x 12 3/4"" (21.6 x 32.4 cm)",Gift of the Juan Ignacio Baixas Archive,729.2014.7,Architecture,Architecture & Design,2014-10-06,Y,184891,https://www.moma.org/collection/works/184891,https://www.moma.org/media/W1siZiIsIjMzMTMxNiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=992a042e8ea3656d,,,,,21.5900431801,,,32.3850647701,, +"Stadthalle in Weissenfels, project",Günter Günschel,45585,"(German, 1928–2008)",(German),(1928),(2008),(male),1957,Photocollage,"6 3/8 x 9"" (16.2 x 22.9 cm)",Gift of Barbara Günschel,681.2014,Architecture,Architecture & Design,2014-10-06,Y,179620,https://www.moma.org/collection/works/179620,https://www.moma.org/media/W1siZiIsIjMzMTI1MyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=fe9aba4f0ecdecca,,,,,16.1925323851,,,22.8600457201,, +"Casa La Villa, La Dehesa, Chile",Juan Baixas,45185,"(Chilean, born 1942)",(Chilean),(1942),(0),(male),1980,Photocopy,".a: 8 1/2 x 13"" (21.6 x 33 cm) +.b: 5 1/2 x 8 1/2"" (14 x 21.6 cm)",Gift of the Juan Ignacio Baixas Archive,668.2014.5a-b,Architecture,Architecture & Design,2014-10-06,Y,184874,https://www.moma.org/collection/works/184874,https://www.moma.org/media/W1siZiIsIjMzMDk3OSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=dc882fb1172b577b,,,,,21.5900431801,,,33.0200660401,, +"Cementerio de la Ciudad Abierta, Ritoque, Chile",Juan Baixas,45185,"(Chilean, born 1942)",(Chilean),(1942),(0),(male),1975,Bound book with photographs,"13 5/8 x 11 3/4"" (34.6 x 29.8 cm)",Gift of the Juan Ignacio Baixas Archive,666.2014.37,Architecture,Architecture & Design,2014-10-06,Y,184858,https://www.moma.org/collection/works/184858,https://www.moma.org/media/W1siZiIsIjMzMDk0MiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=910c784dc3e3e196,,,,,34.6075692151,,,29.8450596901,, +"Casa La Villa, La Dehesa, Chile",Juan Baixas,45185,"(Chilean, born 1942)",(Chilean),(1942),(0),(male),1980,Photo collage with pencil on paper,".a: 8 1/2 x 12 3/4"" (21.6 x 32.4 cm) +.b: 4 3/4 x 14 1/4"" (12.1 x 36.2 cm) irreg.",Gift of the Juan Ignacio Baixas Archive,729.2014.4a-b,Architecture,Architecture & Design,2014-10-06,Y,184879,https://www.moma.org/collection/works/184879,https://www.moma.org/media/W1siZiIsIjMzMTUzOCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=669fa2cbc72a725b,,,,,21.5900431801,,,32.3850647701,, +Virtual Interior MoMA white,Annett Zinsmeister,47075,"(German, born 1967)",(German),(1967),(0),(female),2007/2015,Photographic installation,Dimensions vary,Committee on Architecture and Design Funds,91.2015.2,Architecture,Architecture & Design,2015-03-02,Y,188450,https://www.moma.org/collection/works/188450,https://www.moma.org/media/W1siZiIsIjMzMTYyNSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=eb6648c48f74fce4,,,,,,,,,, +Emergency Temporary Shelter,"Better Shelter, Sweden",49237,"(Swedish, est. 2010)",(Swedish),(2010),(0),(),2010,"Steel frame, polyolefin envelope, polypropylene, polyamide and ABS plastic components, photovoltaics","223 5/8 × 130 11/16 × 111 7/16"" (568 × 332 × 283 cm)",Gift of Better Shelter,116.2016,Architecture,Architecture & Design,2016-02-22,Y,200325,https://www.moma.org/collection/works/200325,https://www.moma.org/media/W1siZiIsIjQyNDIwNSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=f948eadd7759d517,,,283.0,,568.0,,,332.0,, +"Aeronautical Museum, Belgrade, Serbia","Valentin Jeck, Ivan Štraus","69800, 67097","(Swiss, born 1964) (Bosnian, 1928–2018)",(Swiss) (Bosnian),(1964) (1928),(0) (2018),(male) (male),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.7,Architecture,Architecture & Design,2018-10-15,Y,296621,https://www.moma.org/collection/works/296621,https://www.moma.org/media/W1siZiIsIjQ3Njk1NSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=078ec5d363e9c264,,,,,,,,,, +"West Gate of Belgrade (Genex Tower), Belgrade, Serbia","Valentin Jeck, Mihajlo Mitrović","69800, 68205","(Swiss, born 1964) (born 1922)",(Swiss) (),(1964) (1922),(0) (0),(male) (),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.8,Architecture,Architecture & Design,2018-10-15,Y,296622,https://www.moma.org/collection/works/296622,https://www.moma.org/media/W1siZiIsIjQ3Njk1NiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=a3c1e4fe93aa3b6a,,,,,,,,,, +"""Danube Flower"" restaurant, Belgrade, Serbia","Valentin Jeck, Ivan Antić","69800, 68046","(Swiss, born 1964) (1923–2005)",(Swiss) (),(1964) (1923),(0) (2005),(male) (),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.9,Architecture,Architecture & Design,2018-10-15,Y,296623,https://www.moma.org/collection/works/296623,https://www.moma.org/media/W1siZiIsIjQ3Njk1NyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=4609ddddfdb15d5d,,,,,,,,,, +"Sava Center, Belgrade, Serbia","Valentin Jeck, Stojan Maksimović","69800, 68207","(Swiss, born 1964) (born 1934)",(Swiss) (),(1964) (1934),(0) (0),(male) (),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.10,Architecture,Architecture & Design,2018-10-15,Y,296624,https://www.moma.org/collection/works/296624,https://www.moma.org/media/W1siZiIsIjQ3NjkxNCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=05302389d33117f7,,,,,,,,,, +"Apartment Building of the Military Directorate, Zagreb, Croatia (Interior view of the staircase)","Valentin Jeck, Drago Galić","69800, 67479","(Swiss, born 1964) (1907–1992)",(Swiss) (),(1964) (1907),(0) (1992),(male) (),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.12,Architecture,Architecture & Design,2018-10-15,Y,296625,https://www.moma.org/collection/works/296625,https://www.moma.org/media/W1siZiIsIjQ3NjkxNiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=ef0d2750a485e114,,,,,,,,,, +"Apartment Building of the Military Directorate, Zagreb, Croatia","Valentin Jeck, Drago Galić","69800, 67479","(Swiss, born 1964) (1907–1992)",(Swiss) (),(1964) (1907),(0) (1992),(male) (),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.13,Architecture,Architecture & Design,2018-10-15,Y,296626,https://www.moma.org/collection/works/296626,https://www.moma.org/media/W1siZiIsIjQ3NjkxNyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=33058255dffa4f0e,,,,,,,,,, +"Battle of the Sutjeska Memorial Center, Tjentište, Bosnia and Herzegovina","Valentin Jeck, Ranko Radović","69800, 67443","(Swiss, born 1964) (1935–2005)",(Swiss) (),(1964) (1935),(0) (2005),(male) (male),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.27,Architecture,Architecture & Design,2018-10-15,Y,296627,https://www.moma.org/collection/works/296627,https://www.moma.org/media/W1siZiIsIjQ3NjkzMiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=4b36fa8773fa237d,,,,,,,,,, +"Necropolis for the Victims of Fascism, Novi Travnik, Bosnia and Herzegovina","Valentin Jeck, Bogdan Bogdanović","69800, 67233","(Swiss, born 1964) (Serbian, 1922–2010)",(Swiss) (Serbian),(1964) (1922),(0) (2010),(male) (male),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.28,Architecture,Architecture & Design,2018-10-15,Y,296628,https://www.moma.org/collection/works/296628,https://www.moma.org/media/W1siZiIsIjQ3NjkzMyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=207e772b395c907e,,,,,,,,,, +"National and University Library of Kosovo, Pristina, Kosovo","Valentin Jeck, Andrija Mutnjaković","69800, 67482","(Swiss, born 1964) (Croatian, born 1929)",(Swiss) (Croatian),(1964) (1929),(0) (0),(male) (male),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.30,Architecture,Architecture & Design,2018-10-15,Y,296629,https://www.moma.org/collection/works/296629,https://www.moma.org/media/W1siZiIsIjQ3NjkzNiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=e62842e6a0045758,,,,,,,,,, +"Haludovo Hotel complex, Malinska, Krk, Croatia","Valentin Jeck, Boris Magaš","69800, 67481","(Swiss, born 1964) (1930–2013)",(Swiss) (),(1964) (1930),(0) (2013),(male) (),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.32,Architecture,Architecture & Design,2018-10-15,Y,296631,https://www.moma.org/collection/works/296631,https://www.moma.org/media/W1siZiIsIjQ3NjkzOCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=e6eaf7dff47bc33c,,,,,,,,,, +Untitled (Yugoslav Architecture),Valentin Jeck,69800,"(Swiss, born 1964)",(Swiss),(1964),(0),(male),2016,six photographs and thirty-nine digital photographs,dims vary,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.1-45,Architecture,Architecture & Design,2018-10-15,N,292855,,,,,,,,,,,, +"Hotel Adriatic II, Opatija, Croatia","Valentin Jeck, Branko Žnidarec","69800, 67966","(Swiss, born 1964) (born 1937)",(Swiss) (),(1964) (1937),(0) (0),(male) (),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.33,Architecture,Architecture & Design,2018-10-15,Y,296632,https://www.moma.org/collection/works/296632,https://www.moma.org/media/W1siZiIsIjQ3NjkzOSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=4a6a6a118dfa9e1d,,,,,,,,,, +"Stoteks Department Store, Novi Sad, Serbia","Valentin Jeck, Milan Mihelič","69800, 49864","(Swiss, born 1964) (born 1925)",(Swiss) (),(1964) (1925),(0) (0),(male) (),2016,digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.41,Architecture,Architecture & Design,2018-10-15,Y,296634,https://www.moma.org/collection/works/296634,https://www.moma.org/media/W1siZiIsIjQ3Njk0OCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=001c65904d4df9a5,,,,,,,,,, +"Monument to the Revolution of the people of Moslavina, Podgarić, Croatia","Valentin Jeck, Dušan Džamonja","69800, 1669","(Swiss, born 1964) (Croatian, 1928 – 2009)",(Swiss) (Croatian),(1964) (1928),(0) (2009),(male) (male),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.43,Architecture,Architecture & Design,2018-10-15,Y,296635,https://www.moma.org/collection/works/296635,https://www.moma.org/media/W1siZiIsIjQ3Njk1MCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=051dff09a21f69fb,,,,,,,,,, +"Hotel Adriatic II, Opatija, Croatia","Valentin Jeck, Branko Žnidarec","69800, 67966","(Swiss, born 1964) (born 1937)",(Swiss) (),(1964) (1937),(0) (0),(male) (),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.44,Architecture,Architecture & Design,2018-10-15,Y,296636,https://www.moma.org/collection/works/296636,https://www.moma.org/media/W1siZiIsIjQ3Njk1MSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=6b3064e2bf0a0d7f,,,,,,,,,, +"West Gate of Belgrade (Genex Tower), Belgrade, Serbia","Valentin Jeck, Mihajlo Mitrović","69800, 68205","(Swiss, born 1964) (born 1922)",(Swiss) (),(1964) (1922),(0) (0),(male) (),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.45,Architecture,Architecture & Design,2018-10-15,Y,296637,https://www.moma.org/collection/works/296637,https://www.moma.org/media/W1siZiIsIjQ3Njk1MiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=b0adb990d42707c3,,,,,,,,,, +"Medical High School, Skopje, Macedonia","Valentin Jeck, Janko Konstantinov","69800, 49951","(Swiss, born 1964) (Macedonian, 1926–2010)",(Swiss) (Macedonian),(1964) (1926),(0) (2010),(male) (male),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.15,Architecture,Architecture & Design,2018-10-15,Y,296644,https://www.moma.org/collection/works/296644,https://www.moma.org/media/W1siZiIsIjQ3NjkxOSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=746d0e550f707475,,,,,,,,,, +"Hotel Creina, Kranj, Slovenia","Valentin Jeck, Edvard Ravnikar","69800, 49855","(Swiss, born 1964) (1907–1993)",(Swiss) (),(1964) (1907),(0) (1993),(male) (),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.21,Architecture,Architecture & Design,2018-10-15,Y,296645,https://www.moma.org/collection/works/296645,https://www.moma.org/media/W1siZiIsIjQ3NjkyNiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=23b6f10ed21b3fe5,,,,,,,,,, +"Haludovo Hotel complex, Malinska, Krk, Croatia","Valentin Jeck, Boris Magaš","69800, 67481","(Swiss, born 1964) (1930–2013)",(Swiss) (),(1964) (1930),(0) (2013),(male) (),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.31,Architecture,Architecture & Design,2018-10-15,Y,296630,https://www.moma.org/collection/works/296630,https://www.moma.org/media/W1siZiIsIjQ3NjkzNyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=cbb7370487da54a2,,,,,,,,,, +Collage no. 30,Alexander Zossimov,74791,"(Russian, born 1960)",(Russian),(1960),(0),(male),1990,Photocollage,"6 7/8 × 9"" (17.5 × 22.9 cm)",Committee on Architecture and Design Funds,785.2018,Architecture,Architecture & Design,2018-10-15,Y,290225,https://www.moma.org/collection/works/290225,https://www.moma.org/media/W1siZiIsIjQ0MjUwNSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=94c8028b5211eff3,,,,,17.4625349251,,,22.8600457201,, +"Sava Center, Belgrade, Serbia","Valentin Jeck, Stojan Maksimović","69800, 68207","(Swiss, born 1964) (born 1934)",(Swiss) (),(1964) (1934),(0) (0),(male) (),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.37,Architecture,Architecture & Design,2018-10-15,Y,296633,https://www.moma.org/collection/works/296633,https://www.moma.org/media/W1siZiIsIjQ3Njk0MyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=21a7813a1d0bef30,,,,,,,,,, +"Avala TV Tower, Mount Avala, Belgrade, Serbia (Exterior view, 2016)","Milan Krstić, Uglješa Bogunović, Slobodan Janjić, Valentin Jeck","68045, 68043, 68044, 69800","(1914–1974) (1922–1994) (born 1928) (Swiss, born 1964)",() () () (Swiss),(1914) (1922) (1928) (1964),(1974) (1994) (0) (0),() () () (male),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.11,Architecture,Architecture & Design,2018-10-15,Y,283646,https://www.moma.org/collection/works/283646,https://www.moma.org/media/W1siZiIsIjQ3NjkxNSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=5c18a19a8e8928d1,,,,,,,,,, +"Monument to the Fighters Fallen in the People’s Liberation Struggle, Ilirska Bistrica, Slovenia","Živa Baraga, Janez Lenassi, Valentin Jeck","74397, 74398, 69800","(born 1931) (1927–2008) (Swiss, born 1964)",() () (Swiss),(1931) (1927) (1964),(0) (2008) (0),() () (male),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.23,Architecture,Architecture & Design,2018-10-15,Y,284513,https://www.moma.org/collection/works/284513,https://www.moma.org/media/W1siZiIsIjQ3NjkyOCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=041acb6aaff2558f,,,,,,,,,, +"Roman Catholic Cathedral, Mostar, Bosnia and Herzegovina (Photograph of model)",Zlatko Ugljen,50030,"(Bosnian, born 1929)",(Bosnian),(1929),(0),(male),1972,Photograph printed on heavyweight paper,"19 11/16 × 19 11/16"" (50 × 50 cm)",Committee on Architecture and Design Funds,824.2018,Architecture,Architecture & Design,2018-10-15,N,214592,,,,,0.0,,50.0,,,50.0,, +"Block 23, New Belgrade, Serbia (View of buildings 1 to 4, 2016)","Božidar Janković, Branislav Karadžić, Aleksandar Stjepanović, Valentin Jeck, Milutin Glavički","68051, 68052, 68050, 69800, 68054","(Serbian) (Serbian, 1929–2007) (Serbian, born 1931) (Swiss, born 1964) (1930–1987)",(Serbian) (Serbian) (Serbian) (Swiss) (),(0) (1929) (1931) (1964) (1930),(0) (2007) (0) (0) (1987),(male) (male) (male) (male) (),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.29,Architecture,Architecture & Design,2018-10-15,Y,273888,https://www.moma.org/collection/works/273888,https://www.moma.org/media/W1siZiIsIjQ3NjkzNCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=63985d154e1f28ce,,,,,,,,,, +"Museum of People’s Revolution, Sarajevo, Bosnia and Herzegovina (Exterior view of the entrance, 2016)","Boris Magaš, Valentin Jeck","67481, 69800","(1930–2013) (Swiss, born 1964)",() (Swiss),(1930) (1964),(2013) (0),() (male),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.24,Architecture,Architecture & Design,2018-10-15,Y,273892,https://www.moma.org/collection/works/273892,https://www.moma.org/media/W1siZiIsIjQ3NjkyOSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=aa39b9a08744209b,,,,,,,,,, +"Revolution Square (today Republic Square), Ljubljana, Slovenia","Edvard Ravnikar, Valentin Jeck","49855, 69800","(1907–1993) (Swiss, born 1964)",() (Swiss),(1907) (1964),(1993) (0),() (male),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.17,Architecture,Architecture & Design,2018-10-15,Y,273894,https://www.moma.org/collection/works/273894,https://www.moma.org/media/W1siZiIsIjQ3NjkyMSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=b2ed146d3c0f7029,,,,,,,,,, +"Revolution Square (today Republic Square), Ljubljana, Slovenia (Northern view, 2016)","Edvard Ravnikar, Valentin Jeck","49855, 69800","(1907–1993) (Swiss, born 1964)",() (Swiss),(1907) (1964),(1993) (0),() (male),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.18,Architecture,Architecture & Design,2018-10-15,Y,273896,https://www.moma.org/collection/works/273896,https://www.moma.org/media/W1siZiIsIjQ3NjkyMiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=07ef997797e3e91a,,,,,,,,,, +"S2 Office Tower, Ljubljana, Slovenia (Exterior view, 2016)","Milan Mihelič, Valentin Jeck","49864, 69800","(born 1925) (Swiss, born 1964)",() (Swiss),(1925) (1964),(0) (0),() (male),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.20,Architecture,Architecture & Design,2018-10-15,Y,273897,https://www.moma.org/collection/works/273897,https://www.moma.org/media/W1siZiIsIjUzMjA0NiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=3efb4232e0f72b27,,,,,,,,,, +"Šerefudin White Mosque, Visoko, Bosnia and Herzegovina (Interior view, 2016)","Zlatko Ugljen, Valentin Jeck","50030, 69800","(Bosnian, born 1929) (Swiss, born 1964)",(Bosnian) (Swiss),(1929) (1964),(0) (0),(male) (male),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.25,Architecture,Architecture & Design,2018-10-15,Y,273898,https://www.moma.org/collection/works/273898,https://www.moma.org/media/W1siZiIsIjQ3NjkzMCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=77d7ecc18d819cef,,,,,,,,,, +"Building block on Braće Borozan Street, Split 3, Split, Croatia (Exterior view, 2016)","Dinko Kovačić, Mihajlo Zorić","50170, 69841",(born 1938) (born 1939),(Croatian) (),(1938) (1939),(0) (0),(male) (),1970–1973,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.34,Architecture,Architecture & Design,2018-10-15,Y,273901,https://www.moma.org/collection/works/273901,https://www.moma.org/media/W1siZiIsIjQ3Njk0MCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=a818bba03be319cc,,,,,,,,,, +"Block 23, New Belgrade, Serbia (View of the entrance to Slab 5, 2016)","Božidar Janković, Branislav Karadžić, Aleksandar Stjepanović, Valentin Jeck, Milutin Glavički","68051, 68052, 68050, 69800, 68054","(Serbian) (Serbian, 1929–2007) (Serbian, born 1931) (Swiss, born 1964) (1930–1987)",(Serbian) (Serbian) (Serbian) (Swiss) (),(0) (1929) (1931) (1964) (1930),(0) (2007) (0) (0) (1987),(male) (male) (male) (male) (),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.36,Architecture,Architecture & Design,2018-10-15,Y,273889,https://www.moma.org/collection/works/273889,https://www.moma.org/media/W1siZiIsIjQ3Njk0MiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=5049dce65418c4d2,,,,,,,,,, +"Telecommunications Center, Skopje, Macedonia (View of southwestern block façade, 2016)","Janko Konstantinov, Valentin Jeck","49951, 69800","(Macedonian, 1926–2010) (Swiss, born 1964)",(Macedonian) (Swiss),(1926) (1964),(2010) (0),(male) (male),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.16,Architecture,Architecture & Design,2018-10-15,Y,280128,https://www.moma.org/collection/works/280128,https://www.moma.org/media/W1siZiIsIjQ3NjkyMCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=6f96f387a0bc5382,,,,,,,,,, +"Podgorica Hotel, Podgorica, Montenegro","Svetlana Kana Radević, Valentin Jeck","68343, 69800","(1937–2000) (Swiss, born 1964)",() (Swiss),(1937) (1964),(2000) (0),() (male),2016,Digital photograph,,Gift of Robert Menschel and Janet Wallach and the Committee on Architecture and Design,803.2018.42,Architecture,Architecture & Design,2018-10-15,Y,273902,https://www.moma.org/collection/works/273902,https://www.moma.org/media/W1siZiIsIjQ3Njk0OSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=c5cc9f0e84ec81a7,,,,,,,,,, +"Telecommunications Center, Skopje, Macedonia (Exterior view of Counter Hall, 2016)","Janko Konstantinov, Valentin Jeck","49951, 69800","(Macedonian, 1926–2010) (Swiss, born 1964)",(Macedonian) (Swiss),(1926) (1964),(2010) (0),(male) (male),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.38,Architecture,Architecture & Design,2018-10-15,Y,282386,https://www.moma.org/collection/works/282386,https://www.moma.org/media/W1siZiIsIjQ3Njk0NCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=b6cb1b13729e3e88,,,,,,,,,, +"Aeronautical Museum, Belgrade, Serbia (Interior view, 2016)","Ivan Štraus, Valentin Jeck","67097, 69800","(Bosnian, 1928–2018) (Swiss, born 1964)",(Bosnian) (Swiss),(1928) (1964),(2018) (0),(male) (male),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.40,Architecture,Architecture & Design,2018-10-15,Y,282387,https://www.moma.org/collection/works/282387,https://www.moma.org/media/W1siZiIsIjQ3Njk0NyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=194af2ad1d591aa2,,,,,,,,,, +"Diagnostic and Therapeutic Wing of the University Medical Center, Ljubljana, Slovenia (Interior view of staircase, 2016)","Stanko Kristl, Valentin Jeck","49860, 69800","(born 1922) (Swiss, born 1964)",() (Swiss),(1922) (1964),(0) (0),() (male),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.39,Architecture,Architecture & Design,2018-10-15,Y,280136,https://www.moma.org/collection/works/280136,https://www.moma.org/media/W1siZiIsIjQ3Njk0NSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=0ffcff28e518fbd7,,,,,,,,,, +"Council Assembly Building, Kranj, Slovenia (Interior view of auditorium, 2016)","Edvard Ravnikar, Valentin Jeck","49855, 69800","(1907–1993) (Swiss, born 1964)",() (Swiss),(1907) (1964),(1993) (0),() (male),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.22,Architecture,Architecture & Design,2018-10-15,Y,280138,https://www.moma.org/collection/works/280138,https://www.moma.org/media/W1siZiIsIjQ3NjkyNyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=42406310db10efee,,,,,,,,,, +"Diagnostic and Therapeutic Wing of the University Medical Center, Ljubljana, Slovenia (Interior view of entrance hall, 2016)","Stanko Kristl, Valentin Jeck","49860, 69800","(born 1922) (Swiss, born 1964)",() (Swiss),(1922) (1964),(0) (0),() (male),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.19,Architecture,Architecture & Design,2018-10-15,Y,280134,https://www.moma.org/collection/works/280134,https://www.moma.org/media/W1siZiIsIjQ3NjkyMyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=4caba9a485df0e22,,,,,,,,,, +"Pavilion of West Germany, Zagreb Fair, Zagreb, Croatia (View of the northeastern façade, 2016)","Ivan Vitić, Krunoslav Tonković, Valentin Jeck","67489, 74117, 69800","(1917–1986) (1917–1986) (Swiss, born 1964)",() () (Swiss),(1917) (1917) (1964),(1986) (1986) (0),() () (male),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.14,Architecture,Architecture & Design,2018-10-15,Y,280132,https://www.moma.org/collection/works/280132,https://www.moma.org/media/W1siZiIsIjQ3NjkxOCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=3e055f3bfa8cca9b,,,,,,,,,, +"Macedonian Opera and Ballet, Skopje, Macedonia (View of the foyer, 2016)","Valentin Jeck, Štefan Kacin, Jurij Princes, Bogdan Spindler, Marjan Uršič","69800, 49961, 49962, 74159, 49964","(Swiss, born 1964) (born 1939) (born 1933) (born 1940) (born 1934)",(Swiss) () () () (),(1964) (1939) (1933) (1940) (1934),(0) (0) (0) (0) (0),(male) () () () (),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.26,Architecture,Architecture & Design,2018-10-15,Y,280129,https://www.moma.org/collection/works/280129,https://www.moma.org/media/W1siZiIsIjQ3NjkzMSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=38b920171394e731,,,,,,,,,, +"Diagnostic and Therapeutic Wing of the University Medical Center, Ljubljana, Slovenia (Interior view of staircase, 2016)","Stanko Kristl, Valentin Jeck","49860, 69800","(born 1922) (Swiss, born 1964)",() (Swiss),(1922) (1964),(0) (0),() (male),2016,Digital photograph,,"Gift of Robert Menschel, Janet Wallach, and the Committee on Architecture and Design",803.2018.35,Architecture,Architecture & Design,2018-10-15,Y,280135,https://www.moma.org/collection/works/280135,https://www.moma.org/media/W1siZiIsIjQ3Njk0MSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=27fc0f331f69495d,,,,,,,,,, +"Cerak Vinogradi Housing Estate, Belgrade, Serbia","Darko Marušić, Milenija Marušić, Nedeljko Borovnica","68163, 68164, 74177","(Serbian, born 1940) (Serbian, born 1940)",(Serbian) (Serbian) (),(1940) (1940) (0),(0) (0) (0),(male) (female) (),1977–1987,"four architectural drawings, two photographs",dimensions vary,Gift of the architects,152.2019.1-6,Architecture,Architecture & Design,2019-11-04,N,404559,,,,,,,,,,,, +"Seashore Library - Aranya, Heibei, China","Dong Gong, Shengliang Su","133075, 133410","(Chinese, born 1972) (Chinese)",(Chinese) (Chinese),(1972) (0),(0) (0),(male) (),2014–2015,Digital photograph,,Gift of Dong Gong / Vector Architects,299.2020.5,Architecture,Architecture & Design,2020-11-16,Y,416691,https://www.moma.org/collection/works/416691,https://www.moma.org/media/W1siZiIsIjQ5NjM3MyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=32c115283cd0f4c9,,,,,,,,,, +"Seashore Library - Aranya, Heibei, China","Dong Gong, Shengliang Su","133075, 133410","(Chinese, born 1972) (Chinese)",(Chinese) (Chinese),(1972) (0),(0) (0),(male) (),2014–2015,Digital photograph,,Gift of Dong Gong / Vector Architects,299.2020.6,Architecture,Architecture & Design,2020-11-16,Y,416692,https://www.moma.org/collection/works/416692,https://www.moma.org/media/W1siZiIsIjQ5NjM3NCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=428aac551e9284a5,,,,,,,,,, +"Seashore Library - Aranya, Heibei, China","Dong Gong, Shengliang Su","133075, 133410","(Chinese, born 1972) (Chinese)",(Chinese) (Chinese),(1972) (0),(0) (0),(male) (),2014–2015,Digital photograph,,Gift of Dong Gong / Vector Architects,299.2020.4,Architecture,Architecture & Design,2020-11-16,Y,416690,https://www.moma.org/collection/works/416690,https://www.moma.org/media/W1siZiIsIjQ5NjM3MiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=94c74582a1fcb4aa,,,,,,,,,, +"Seashore Library - Aranya, Heibei, China","Dong Gong, Xia Shi","133075, 133412","(Chinese, born 1972)",(Chinese) (),(1972) (0),(0) (0),(male) (),2014–2015,Digital photograph,,Gift of Dong Gong / Vector Architects,299.2020.3,Architecture,Architecture & Design,2020-11-16,Y,416689,https://www.moma.org/collection/works/416689,https://www.moma.org/media/W1siZiIsIjQ5NjM3MSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=ea47b270bb40d0bd,,,,,,,,,, +"Seashore Library - Aranya, Heibei, China","Dong Gong, Shengliang Su","133075, 133410","(Chinese, born 1972) (Chinese)",(Chinese) (Chinese),(1972) (0),(0) (0),(male) (),2014–2015,Digital photograph,,Gift of Dong Gong / Vector Architects,299.2020.2,Architecture,Architecture & Design,2020-11-16,Y,416688,https://www.moma.org/collection/works/416688,https://www.moma.org/media/W1siZiIsIjQ5NjM3MCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=8c33807031ec9fb1,,,,,,,,,, +"Seashore Library - Aranya, Heibei, China","Dong Gong, Shengliang Su","133075, 133410","(Chinese, born 1972) (Chinese)",(Chinese) (Chinese),(1972) (0),(0) (0),(male) (),2014–2015,Digital photograph,,Gift of Dong Gong / Vector Architects,299.2020.1,Architecture,Architecture & Design,2020-11-16,Y,416687,https://www.moma.org/collection/works/416687,https://www.moma.org/media/W1siZiIsIjQ5NjM2OSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=9ab5b70dc9832502,,,,,,,,,, +"Tulou Collective Housing, Nanhai, Guandong, China","Xiao Du Liu, Yan Meng, Hui Wang, Chaoying Yang","133361, 133362, 133363, 133364","(Chinese, born 1961) (Chinese, born 1964) (Chinese, born 1967) (Chinese)",(Chinese) (Chinese) (Chinese) (Chinese),(1961) (1964) (1967) (0),(0) (0) (0) (0),(male) (male) (male) (),2005–2008,Digital photograph,,Gift of the architects,290.2020.6,Architecture,Architecture & Design,2020-11-16,Y,416257,https://www.moma.org/collection/works/416257,https://www.moma.org/media/W1siZiIsIjQ5NjEzOCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=3801ffa15b61c113,,,,,,,,,, +"Tulou Collective Housing, Nanhai, Guandong, China","Xiao Du Liu, Yan Meng, Hui Wang, Chaoying Yang","133361, 133362, 133363, 133364","(Chinese, born 1961) (Chinese, born 1964) (Chinese, born 1967) (Chinese)",(Chinese) (Chinese) (Chinese) (Chinese),(1961) (1964) (1967) (0),(0) (0) (0) (0),(male) (male) (male) (),2005–2008,Digital photograph,,Gift of the architects,290.2020.2,Architecture,Architecture & Design,2020-11-16,Y,416253,https://www.moma.org/collection/works/416253,https://www.moma.org/media/W1siZiIsIjQ5NjEzNCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=2ad206a401ac4889,,,,,,,,,, +"Tulou Collective Housing, Nanhai, Guandong, China","Xiao Du Liu, Yan Meng, Hui Wang, Chaoying Yang","133361, 133362, 133363, 133364","(Chinese, born 1961) (Chinese, born 1964) (Chinese, born 1967) (Chinese)",(Chinese) (Chinese) (Chinese) (Chinese),(1961) (1964) (1967) (0),(0) (0) (0) (0),(male) (male) (male) (),2005–2008,Digital photograph,,Gift of the architects,290.2020.4,Architecture,Architecture & Design,2020-11-16,Y,416255,https://www.moma.org/collection/works/416255,https://www.moma.org/media/W1siZiIsIjQ5NjEzNiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=e796e4548bcd9b10,,,,,,,,,, +"Tulou Collective Housing, Nanhai, Guandong, China","Xiao Du Liu, Yan Meng, Hui Wang, Chaoying Yang","133361, 133362, 133363, 133364","(Chinese, born 1961) (Chinese, born 1964) (Chinese, born 1967) (Chinese)",(Chinese) (Chinese) (Chinese) (Chinese),(1961) (1964) (1967) (0),(0) (0) (0) (0),(male) (male) (male) (),2005–2008,Digital photograph,,Gift of the architects,290.2020.3,Architecture,Architecture & Design,2020-11-16,Y,416254,https://www.moma.org/collection/works/416254,https://www.moma.org/media/W1siZiIsIjQ5NjEzNSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=2602852323736f2c,,,,,,,,,, +"Tulou Collective Housing, Nanhai, Guandong, China","Xiao Du Liu, Yan Meng, Hui Wang, Chaoying Yang","133361, 133362, 133363, 133364","(Chinese, born 1961) (Chinese, born 1964) (Chinese, born 1967) (Chinese)",(Chinese) (Chinese) (Chinese) (Chinese),(1961) (1964) (1967) (0),(0) (0) (0) (0),(male) (male) (male) (),2005–2008,Digital photograph,,Gift of the architects,290.2020.1,Architecture,Architecture & Design,2020-11-16,Y,416252,https://www.moma.org/collection/works/416252,,,,,,,,,,, +"Seashore Library - Aranya, Heibei, China",Vector Architects,132778,(est. 2008),(),(2008),(0),(),2014–2015,Digital photographs,,Gift of the architect,299.2020.1-8,Architecture,Architecture & Design,2020-11-16,N,420655,,,,,,,,,,,, +"Seashore Library - Aranya, Heibei, China","Dong Gong, Xia Shi","133075, 133412","(Chinese, born 1972)",(Chinese) (),(1972) (0),(0) (0),(male) (),2014–2015,Digital photograph,,Gift of Dong Gong / Vector Architects,299.2020.7,Architecture,Architecture & Design,2020-11-16,Y,416693,https://www.moma.org/collection/works/416693,https://www.moma.org/media/W1siZiIsIjQ5NjM3NSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=a106c8df3c31218e,,,,,,,,,, +"Angdong Hospital, Baojing, Hunan Province, China","Joshua Bolchover, John Lin","133571, 133572","(British, born 1974) (American, born Taiwan, 1975)",(British) (American),(1974) (1975),(0) (0),(male) (male),2011–2014,Digital photograph,,Gift of Rural Urban Framework (RUF),279.2020.4,Architecture,Architecture & Design,2020-11-16,Y,416221,https://www.moma.org/collection/works/416221,,,,,,,,,,, +"Tulou Collective Housing, Nanhai, Guandong, China","Xiao Du Liu, Yan Meng, Hui Wang, Chaoying Yang","133361, 133362, 133363, 133364","(Chinese, born 1961) (Chinese, born 1964) (Chinese, born 1967) (Chinese)",(Chinese) (Chinese) (Chinese) (Chinese),(1961) (1964) (1967) (0),(0) (0) (0) (0),(male) (male) (male) (),2005–2008,Digital photograph,,Gift of the architects,290.2020.5,Architecture,Architecture & Design,2020-11-16,Y,416256,https://www.moma.org/collection/works/416256,https://www.moma.org/media/W1siZiIsIjQ5NjEzNyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=1203f256710b2111,,,,,,,,,, +"Seashore Library - Aranya, Heibei, China","Dong Gong, Shengliang Su","133075, 133410","(Chinese, born 1972) (Chinese)",(Chinese) (Chinese),(1972) (0),(0) (0),(male) (),2014–2015,Digital photograph,,Gift of Dong Gong / Vector Architects,299.2020.8,Architecture,Architecture & Design,2020-11-16,Y,416694,https://www.moma.org/collection/works/416694,https://www.moma.org/media/W1siZiIsIjQ5NjM3NiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=3b8593ffd1c27816,,,,,,,,,, +"Brown Sugar Factory, Zhangxi Village, Songyang, China",DnA_Design and Architecture,132772,,(),(0),(0),(),2015–2016,Digital photographs,,Gift of the architect,267.2020.1-7,Architecture,Architecture & Design,2020-11-16,N,420634,,,,,,,,,,,, +"Alila Yangshuo Hotel, Yangshuo, Guilin, Guangxi, China","Dong Gong, Hao Chen","133075, 133411","(Chinese, born 1972)",(Chinese) (Chinese),(1972) (0),(0) (0),(male) (),2013–2017,Digital photograph,,Gift of Dong Gong / Vector Architects,295.2020.3,Architecture,Architecture & Design,2020-11-16,Y,416706,https://www.moma.org/collection/works/416706,https://www.moma.org/media/W1siZiIsIjQ5NjM2MyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=ec5d4a909e9ed5da,,,,,,,,,, +"Angdong Hospital, Baojing, Hunan Province, China","Joshua Bolchover, John Lin","133571, 133572","(British, born 1974) (American, born Taiwan, 1975)",(British) (American),(1974) (1975),(0) (0),(male) (male),2011–2014,Digital photograph,,Gift of Rural Urban Framework (RUF),279.2020.3,Architecture,Architecture & Design,2020-11-16,Y,416220,https://www.moma.org/collection/works/416220,,,,,,,,,,, +"Alila Yangshuo Hotel, Yangshuo, Guilin, Guangxi, China",,,,,,,,2013–2017,Digital photographs,,Gift of the architects,295.2020.1-8,Architecture,Architecture & Design,2020-11-16,N,420652,,,,,,,,,,,, +"Tulou Collective Housing, Nanhai, Guandong, China","Urbanus Architecture & Design Inc., Chaoying Yang","132777, 133364",(est. 1999) (Chinese),(Chinese) (Chinese),(1999) (0),(0) (0),() (),2005–2008,Digital photographs,,Gift of the architects,290.2020.1-6,Architecture,Architecture & Design,2020-11-16,N,420649,,,,,,,,,,,, +"Angdong Hospital, Baojing, Hunan Province, China",Rural Urban Framework,132775,,(),(0),(0),(),2011–2014,Digital photographs,,Gift of Rural Urban Framework (RUF),279.2020.1-4,Architecture,Architecture & Design,2020-11-16,N,420642,,,,,,,,,,,, +"UCCA Dune Art Museum, Aranya, Hebei, China",OPEN Architecture,132774,,(),(0),(0),(),2015–2018,Digital photographs,,Gift of the architects,277.2020.1-10,Architecture,Architecture & Design,2020-11-16,N,420640,,,,,,,,,,,, +"Hakka Indenture Museum,Shicang Village, Songyang, China,",DnA_Design and Architecture,132772,,(),(0),(0),(),2017,Digital photographs,,Gift of the architect,270.2020.1-6,Architecture,Architecture & Design,2020-11-16,N,420636,,,,,,,,,,,, +"Alila Yangshuo Hotel, Yangshuo, Guilin, Guangxi, China","Dong Gong, Shengliang Su","133075, 133410","(Chinese, born 1972) (Chinese)",(Chinese) (Chinese),(1972) (0),(0) (0),(male) (),2013–2017,Digital photograph,,Gift of Dong Gong / Vector Architects,295.2020.1,Architecture,Architecture & Design,2020-11-16,Y,416705,https://www.moma.org/collection/works/416705,https://www.moma.org/media/W1siZiIsIjQ5NjM2MSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=fb981837fc6fe016,,,,,,,,,, +"Bamboo Theater, HengKeng Village, Songyang, China",DnA_Design and Architecture,132772,,(),(0),(0),(),2015,Digital photographs,,Gift of the architect,264.2020.1-4,Architecture,Architecture & Design,2020-11-16,N,420630,,,,,,,,,,,, +"Alila Yangshuo Hotel, Yangshuo, Guilin, Guangxi, China","Dong Gong, Hao Chen","133075, 133411","(Chinese, born 1972)",(Chinese) (Chinese),(1972) (0),(0) (0),(male) (),2013–2017,Digital photograph,,Gift of Dong Gong / Vector Architects,295.2020.8,Architecture,Architecture & Design,2020-11-16,Y,416712,https://www.moma.org/collection/works/416712,https://www.moma.org/media/W1siZiIsIjQ5NjM2OCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=f6d5bc8461c82753,,,,,,,,,, +"Alila Yangshuo Hotel, Yangshuo, Guilin, Guangxi, China","Dong Gong, Hao Chen","133075, 133411","(Chinese, born 1972)",(Chinese) (Chinese),(1972) (0),(0) (0),(male) (),2013–2017,Digital photograph,,Gift of Dong Gong / Vector Architects,295.2020.7,Architecture,Architecture & Design,2020-11-16,Y,416711,https://www.moma.org/collection/works/416711,https://www.moma.org/media/W1siZiIsIjQ5NjM2NyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=84471644bff42626,,,,,,,,,, +"Alila Yangshuo Hotel, Yangshuo, Guilin, Guangxi, China","Dong Gong, Shengliang Su","133075, 133410","(Chinese, born 1972) (Chinese)",(Chinese) (Chinese),(1972) (0),(0) (0),(male) (),2013–2017,Digital photograph,,Gift of Dong Gong / Vector Architects,295.2020.6,Architecture,Architecture & Design,2020-11-16,Y,416710,https://www.moma.org/collection/works/416710,https://www.moma.org/media/W1siZiIsIjQ5NjM2NiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=1b6522cdb8f6ab31,,,,,,,,,, +"Alila Yangshuo Hotel, Yangshuo, Guilin, Guangxi, China","Dong Gong, Shengliang Su","133075, 133410","(Chinese, born 1972) (Chinese)",(Chinese) (Chinese),(1972) (0),(0) (0),(male) (),2013–2017,Digital photograph,,Gift of Dong Gong / Vector Architects,295.2020.5,Architecture,Architecture & Design,2020-11-16,Y,416709,https://www.moma.org/collection/works/416709,https://www.moma.org/media/W1siZiIsIjQ5NjM2NSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=f11b7ceb0cd1a9bc,,,,,,,,,, +"Alila Yangshuo Hotel, Yangshuo, Guilin, Guangxi, China","Dong Gong, Shengliang Su","133075, 133410","(Chinese, born 1972) (Chinese)",(Chinese) (Chinese),(1972) (0),(0) (0),(male) (),2013–2017,Digital photograph,,Gift of Dong Gong / Vector Architects,295.2020.4,Architecture,Architecture & Design,2020-11-16,Y,416708,https://www.moma.org/collection/works/416708,https://www.moma.org/media/W1siZiIsIjQ5NjM2NCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=e6c7afcd1c84360f,,,,,,,,,, +"Alila Yangshuo Hotel, Yangshuo, Guilin, Guangxi, China","Dong Gong, Shengliang Su","133075, 133410","(Chinese, born 1972) (Chinese)",(Chinese) (Chinese),(1972) (0),(0) (0),(male) (),2013–2017,Digital photograph,,Gift of Dong Gong / Vector Architects,295.2020.2,Architecture,Architecture & Design,2020-11-16,Y,416707,https://www.moma.org/collection/works/416707,https://www.moma.org/media/W1siZiIsIjQ5NjM2MiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=c1f01b86832cccfe,,,,,,,,,, +"Long Museum West Bund, Shanghai, China","Liu Yichun, Chen Yifeng, Tian Fangfang","133552, 133553, 133402","(Chinese, born 1969) (Chinese, born 1972)",(Chinese) (Chinese) (),(1969) (1972) (0),(0) (0) (0),(male) (male) (),2011–2014,Digital photographs,,Gift of the architects,263.2020.1-7,Architecture,Architecture & Design,2020-11-16,N,420628,,,,,,,,,,,, +"Angdong Hospital, Baojing, Hunan Province, China","Joshua Bolchover, John Lin","133571, 133572","(British, born 1974) (American, born Taiwan, 1975)",(British) (American),(1974) (1975),(0) (0),(male) (male),2011–2014,Digital photograph,,Gift of Rural Urban Framework (RUF),279.2020.2,Architecture,Architecture & Design,2020-11-16,Y,416219,https://www.moma.org/collection/works/416219,,,,,,,,,,, +"UCCA Dune Art Museum, Aranya, Hebei, China","Li Hu, Huang Wenjing, Wu Qingshan","133368, 133369, 74188","(Chinese, born 1973) (Chinese, born 1973) (Chinese)",(Chinese) (Chinese) (Chinese),(1973) (1973) (0),(0) (0) (0),(male) (female) (male),2015–2018,Digital photograph,,Gift of OPEN Architecture,277.2020.7,Architecture,Architecture & Design,2020-11-16,Y,416211,https://www.moma.org/collection/works/416211,https://www.moma.org/media/W1siZiIsIjQ5NjM1NCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=36307aa23ae2b841,,,,,,,,,, +"UCCA Dune Art Museum, Aranya, Hebei, China","Li Hu, Huang Wenjing, Wu Qingshan","133368, 133369, 74188","(Chinese, born 1973) (Chinese, born 1973) (Chinese)",(Chinese) (Chinese) (Chinese),(1973) (1973) (0),(0) (0) (0),(male) (female) (male),2015–2018,Digital photograph,,Gift of OPEN Architecture,277.2020.10,Architecture,Architecture & Design,2020-11-16,Y,416214,https://www.moma.org/collection/works/416214,https://www.moma.org/media/W1siZiIsIjQ5NjM0OSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=8b2508b78cc6a45e,,,,,,,,,, +"Brown Sugar Factory, Zhangxi Village, Songyang, China","Wang Ziling, Xu Tiantian","74187, 133557","(Chinese) (Chinese, born 1975)",(Chinese) (Chinese),(0) (1975),(0) (0),(male) (male),2015–2016,Photograph,,Gift of the architect,267.2020.3,Architecture,Architecture & Design,2020-11-16,Y,416176,https://www.moma.org/collection/works/416176,,,,,,,,,,, +"Brown Sugar Factory, Zhangxi Village, Songyang, China,","Wang Ziling, Xu Tiantian","74187, 133557","(Chinese) (Chinese, born 1975)",(Chinese) (Chinese),(0) (1975),(0) (0),(male) (male),2015–2016,Photograph,,Gift of the architect,267.2020.2,Architecture,Architecture & Design,2020-11-16,Y,416175,https://www.moma.org/collection/works/416175,,,,,,,,,,, +"Brown Sugar Factory, Zhangxi Village, Songyang, China","Han Dan, Xu Tiantian","133546, 133557","(Chinese) (Chinese, born 1975)",(Chinese) (Chinese),(0) (1975),(0) (0),() (male),2015–2016,Photograph,,Gift of the architect,267.2020.1,Architecture,Architecture & Design,2020-11-16,Y,416174,https://www.moma.org/collection/works/416174,,,,,,,,,,, +"Bamboo Theater, HengKeng Village, Songyang, China","Xiaodong Jiang, Xu Tiantian","133547, 133557","(Chinese) (Chinese, born 1975)",(Chinese) (Chinese),(0) (1975),(0) (0),() (male),2015,Photograph,,Gift of the architect,264.2020.4,Architecture,Architecture & Design,2020-11-16,Y,416170,https://www.moma.org/collection/works/416170,https://www.moma.org/media/W1siZiIsIjUwMDgyMyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=8e96138f1c66e475,,,,,,,,,, +"Bamboo Theater, HengKeng Village, Songyang, China","Wang Ziling, Xu Tiantian","74187, 133557","(Chinese) (Chinese, born 1975)",(Chinese) (Chinese),(0) (1975),(0) (0),(male) (male),2015,Photograph,,Gift of the architect,264.2020.3,Architecture,Architecture & Design,2020-11-16,Y,416169,https://www.moma.org/collection/works/416169,https://www.moma.org/media/W1siZiIsIjUwMDgyMiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=13fae678f27642f0,,,,,,,,,, +"Bamboo Theater, HengKeng Village, Songyang, China","Wang Ziling, Xu Tiantian","74187, 133557","(Chinese) (Chinese, born 1975)",(Chinese) (Chinese),(0) (1975),(0) (0),(male) (male),2015,Photograph,,Gift of the architect,264.2020.2,Architecture,Architecture & Design,2020-11-16,Y,416168,https://www.moma.org/collection/works/416168,https://www.moma.org/media/W1siZiIsIjUwMDgyMSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=d72ade7ba88ffe09,,,,,,,,,, +"Brown Sugar Factory, Zhangxi Village, Songyang, China","Wang Ziling, Xu Tiantian","74187, 133557","(Chinese) (Chinese, born 1975)",(Chinese) (Chinese),(0) (1975),(0) (0),(male) (male),2015–2016,Photograph,,Gift of the architect,267.2020.4,Architecture,Architecture & Design,2020-11-16,Y,416177,https://www.moma.org/collection/works/416177,,,,,,,,,,, +"Long Museum West Bund, Shanghai, China","Liu Yichun, Chen Yifeng, Hao Chen","133552, 133553, 133411","(Chinese, born 1969) (Chinese, born 1972)",(Chinese) (Chinese) (Chinese),(1969) (1972) (0),(0) (0) (0),(male) (male) (),2011–2014,Digital photograph,,Gift of the architects,263.2020.7,Architecture,Architecture & Design,2020-11-16,Y,416167,https://www.moma.org/collection/works/416167,https://www.moma.org/media/W1siZiIsIjQ5OTA5NiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=f5eb320d3ed111be,,,,,,,,,, +"Long Museum West Bund, Shanghai, China","Liu Yichun, Chen Yifeng, Shengliang Su","133552, 133553, 133410","(Chinese, born 1969) (Chinese, born 1972) (Chinese)",(Chinese) (Chinese) (Chinese),(1969) (1972) (0),(0) (0) (0),(male) (male) (),2011–2014,Digital photograph,,Gift of the architects,263.2020.5,Architecture,Architecture & Design,2020-11-16,Y,416165,https://www.moma.org/collection/works/416165,https://www.moma.org/media/W1siZiIsIjQ5OTA5NCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=c8f751ee63ee3606,,,,,,,,,, +"Long Museum West Bund, Shanghai, China","Liu Yichun, Chen Yifeng, Shengliang Su","133552, 133553, 133410","(Chinese, born 1969) (Chinese, born 1972) (Chinese)",(Chinese) (Chinese) (Chinese),(1969) (1972) (0),(0) (0) (0),(male) (male) (),2011–2014,Digital photograph,,Gift of the architects,263.2020.4,Architecture,Architecture & Design,2020-11-16,Y,416164,https://www.moma.org/collection/works/416164,https://www.moma.org/media/W1siZiIsIjQ5OTA5MyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=7019d99c76ae47ea,,,,,,,,,, +"Long Museum West Bund, Shanghai, China","Tian Fangfang, Liu Yichun, Chen Yifeng","133402, 133552, 133553","(Chinese, born 1969) (Chinese, born 1972)",() (Chinese) (Chinese),(0) (1969) (1972),(0) (0) (0),() (male) (male),2011–2014,Digital photograph,,Gift of the architects,263.2020.2,Architecture,Architecture & Design,2020-11-16,Y,416162,https://www.moma.org/collection/works/416162,https://www.moma.org/media/W1siZiIsIjQ5OTA5MSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=c324b5920241e2bf,,,,,,,,,, +"Long Museum West Bund, Shanghai, China","Liu Yichun, Chen Yifeng, Tian Fangfang","133552, 133553, 133402","(Chinese, born 1969) (Chinese, born 1972)",(Chinese) (Chinese) (),(1969) (1972) (0),(0) (0) (0),(male) (male) (),2011–2014,Digital photograph,,Gift of the architects,263.2020.1,Architecture,Architecture & Design,2020-11-16,Y,416161,https://www.moma.org/collection/works/416161,https://www.moma.org/media/W1siZiIsIjQ5OTA5MCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=ba783a41e3017111,,,,,,,,,, +"Bamboo Theater, HengKeng Village, Songyang, China","Han Dan, Xu Tiantian","133546, 133557","(Chinese) (Chinese, born 1975)",(Chinese) (Chinese),(0) (1975),(0) (0),() (male),2015,Photograph,,Gift of the architect,264.2020.1,Architecture,Architecture & Design,2020-11-16,Y,416124,https://www.moma.org/collection/works/416124,,,,,,,,,,, +"Angdong Hospital, Baojing, Hunan Province, China","Joshua Bolchover, John Lin","133571, 133572","(British, born 1974) (American, born Taiwan, 1975)",(British) (American),(1974) (1975),(0) (0),(male) (male),2011–2014,Digital photograph,,Gift of Rural Urban Framework (RUF),279.2020.1,Architecture,Architecture & Design,2020-11-16,Y,416218,https://www.moma.org/collection/works/416218,,,,,,,,,,, +"Long Museum West Bund, Shanghai, China","Liu Yichun, Chen Yifeng, Shengliang Su","133552, 133553, 133410","(Chinese, born 1969) (Chinese, born 1972) (Chinese)",(Chinese) (Chinese) (Chinese),(1969) (1972) (0),(0) (0) (0),(male) (male) (),2011–2014,Digital photograph,,Gift of the architects,263.2020.6,Architecture,Architecture & Design,2020-11-16,Y,416166,https://www.moma.org/collection/works/416166,https://www.moma.org/media/W1siZiIsIjQ5OTA5NSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=a865ebdddfd46fc1,,,,,,,,,, +"Brown Sugar Factory, Zhangxi Village, Songyang, China","Wang Ziling, Xu Tiantian","74187, 133557","(Chinese) (Chinese, born 1975)",(Chinese) (Chinese),(0) (1975),(0) (0),(male) (male),2015–2016,Photograph,,Gift of the architect,267.2020.5,Architecture,Architecture & Design,2020-11-16,Y,416178,https://www.moma.org/collection/works/416178,,,,,,,,,,, +"Long Museum West Bund, Shanghai, China","Liu Yichun, Chen Yifeng, Shengliang Su","133552, 133553, 133410","(Chinese, born 1969) (Chinese, born 1972) (Chinese)",(Chinese) (Chinese) (Chinese),(1969) (1972) (0),(0) (0) (0),(male) (male) (),2011–2014,Digital photograph,,Gift of the architects,263.2020.3,Architecture,Architecture & Design,2020-11-16,Y,416163,https://www.moma.org/collection/works/416163,https://www.moma.org/media/W1siZiIsIjQ5OTA5MiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=5b6699e4b1f172b0,,,,,,,,,, +"Brown Sugar Factory, Zhangxi Village, Songyang, China","Wang Ziling, Xu Tiantian","74187, 133557","(Chinese) (Chinese, born 1975)",(Chinese) (Chinese),(0) (1975),(0) (0),(male) (male),2015–2016,Photograph,,Gift of the architect,267.2020.7,Architecture,Architecture & Design,2020-11-16,Y,416180,https://www.moma.org/collection/works/416180,,,,,,,,,,, +"Brown Sugar Factory, Zhangxi Village, Songyang, China","Wang Ziling, Xu Tiantian","74187, 133557","(Chinese) (Chinese, born 1975)",(Chinese) (Chinese),(0) (1975),(0) (0),(male) (male),2015–2016,Photograph,,Gift of the architect,267.2020.6,Architecture,Architecture & Design,2020-11-16,Y,416179,https://www.moma.org/collection/works/416179,,,,,,,,,,, +"UCCA Dune Art Museum, Aranya, Hebei, China","Li Hu, Huang Wenjing, Ni Nan","133368, 133369, 133403","(Chinese, born 1973) (Chinese, born 1973)",(Chinese) (Chinese) (),(1973) (1973) (0),(0) (0) (0),(male) (female) (),2015–2018,Digital photograph,,Gift of OPEN Architecture,277.2020.9,Architecture,Architecture & Design,2020-11-16,Y,416213,https://www.moma.org/collection/works/416213,https://www.moma.org/media/W1siZiIsIjQ5NjM1NiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=7ec7b51e7b4dfa2f,,,,,,,,,, +"UCCA Dune Art Museum, Aranya, Hebei, China","Li Hu, Huang Wenjing, Tian Fangfang","133368, 133369, 133402","(Chinese, born 1973) (Chinese, born 1973)",(Chinese) (Chinese) (),(1973) (1973) (0),(0) (0) (0),(male) (female) (),2015–2018,Digital photograph,,Gift of OPEN Architecture,277.2020.8,Architecture,Architecture & Design,2020-11-16,Y,416212,https://www.moma.org/collection/works/416212,https://www.moma.org/media/W1siZiIsIjQ5NjM1NSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=a2e0f94ba3f23a3f,,,,,,,,,, +"UCCA Dune Art Museum, Aranya, Hebei, China","Li Hu, Wu Qingshan, Huang Wenjing","133368, 74188, 133369","(Chinese, born 1973) (Chinese) (Chinese, born 1973)",(Chinese) (Chinese) (Chinese),(1973) (0) (1973),(0) (0) (0),(male) (male) (female),2015–2018,Digital photograph,,Gift of OPEN Architecture,277.2020.6,Architecture,Architecture & Design,2020-11-16,Y,416210,https://www.moma.org/collection/works/416210,https://www.moma.org/media/W1siZiIsIjQ5NjM1MyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=dd258322dd17a305,,,,,,,,,, +"UCCA Dune Art Museum, Aranya, Hebei, China","Li Hu, Huang Wenjing, Zaiye Studio","133368, 133369, 133401","(Chinese, born 1973) (Chinese, born 1973)",(Chinese) (Chinese) (),(1973) (1973) (0),(0) (0) (0),(male) (female) (),2015–2018,Digital photograph,,Gift of OPEN Architecture,277.2020.4,Architecture,Architecture & Design,2020-11-16,Y,416208,https://www.moma.org/collection/works/416208,https://www.moma.org/media/W1siZiIsIjQ5NjM1MSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=8b7a3009532603e3,,,,,,,,,, +"UCCA Dune Art Museum, Aranya, Hebei, China","Li Hu, Huang Wenjing, Wu Qingshan","133368, 133369, 74188","(Chinese, born 1973) (Chinese, born 1973) (Chinese)",(Chinese) (Chinese) (Chinese),(1973) (1973) (0),(0) (0) (0),(male) (female) (male),2015–2018,Digital photograph,,Gift of OPEN Architecture,277.2020.3,Architecture,Architecture & Design,2020-11-16,Y,416207,https://www.moma.org/collection/works/416207,https://www.moma.org/media/W1siZiIsIjQ5NjM1MCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=7196a143a2d5d558,,,,,,,,,, +"UCCA Dune Art Museum, Aranya, Hebei, China","Li Hu, Huang Wenjing","133368, 133369","(Chinese, born 1973) (Chinese, born 1973)",(Chinese) (Chinese),(1973) (1973),(0) (0),(male) (female),2015–2018,Digital photograph,,Gift of OPEN Architecture,277.2020.2,Architecture,Architecture & Design,2020-11-16,Y,416206,https://www.moma.org/collection/works/416206,https://www.moma.org/media/W1siZiIsIjQ5NjUyMiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=82a0adbb3ef212aa,,,,,,,,,, +"UCCA Dune Art Museum, Aranya, Hebei, China","Li Hu, Huang Wenjing, Wu Qingshan","133368, 133369, 74188","(Chinese, born 1973) (Chinese, born 1973) (Chinese)",(Chinese) (Chinese) (Chinese),(1973) (1973) (0),(0) (0) (0),(male) (female) (male),2015–2018,Digital photograph,,Gift of OPEN Architecture,277.2020.5,Architecture,Architecture & Design,2020-11-16,Y,416209,https://www.moma.org/collection/works/416209,https://www.moma.org/media/W1siZiIsIjQ5NjM1MiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=afe71cf610800a40,,,,,,,,,, +"Hakka Indenture Museum,Shicang Village, Songyang, China,","Wang Ziling, Xu Tiantian","74187, 133557","(Chinese) (Chinese, born 1975)",(Chinese) (Chinese),(0) (1975),(0) (0),(male) (male),2017,Photograph,,Gift of the architect,270.2020.6,Architecture,Architecture & Design,2020-11-16,Y,416190,https://www.moma.org/collection/works/416190,,,,,,,,,,, +"Hakka Indenture Museum,Shicang Village, Songyang, China,","Wang Ziling, Xu Tiantian","74187, 133557","(Chinese) (Chinese, born 1975)",(Chinese) (Chinese),(0) (1975),(0) (0),(male) (male),2017,Photograph,,Gift of the architect,270.2020.5,Architecture,Architecture & Design,2020-11-16,Y,416189,https://www.moma.org/collection/works/416189,,,,,,,,,,, +"Hakka Indenture Museum,Shicang Village, Songyang, China,","Wang Ziling, Xu Tiantian","74187, 133557","(Chinese) (Chinese, born 1975)",(Chinese) (Chinese),(0) (1975),(0) (0),(male) (male),2017,Photograph,,Gift of the architect,270.2020.4,Architecture,Architecture & Design,2020-11-16,Y,416188,https://www.moma.org/collection/works/416188,,,,,,,,,,, +"Hakka Indenture Museum,Shicang Village, Songyang, China,",Xu Tiantian,133557,"(Chinese, born 1975)",(Chinese),(1975),(0),(male),2017,Photograph,,Gift of the architect,270.2020.3,Architecture,Architecture & Design,2020-11-16,Y,416187,https://www.moma.org/collection/works/416187,,,,,,,,,,, +"Hakka Indenture Museum,Shicang Village, Songyang, China","Wang Ziling, Xu Tiantian","74187, 133557","(Chinese) (Chinese, born 1975)",(Chinese) (Chinese),(0) (1975),(0) (0),(male) (male),2017,Photograph,,Gift of the architect,270.2020.2,Architecture,Architecture & Design,2020-11-16,Y,416186,https://www.moma.org/collection/works/416186,,,,,,,,,,, +"Hakka Indenture Museum,Shicang Village, Songyang, China,","Han Dan, Xu Tiantian","133546, 133557","(Chinese) (Chinese, born 1975)",(Chinese) (Chinese),(0) (1975),(0) (0),() (male),2017,Photograph,,Gift of the architect,270.2020.1,Architecture,Architecture & Design,2020-11-16,Y,416185,https://www.moma.org/collection/works/416185,,,,,,,,,,, +"UCCA Dune Art Museum, Aranya, Hebei, China","Zaiye Studio, Li Hu, Huang Wenjing","133401, 133368, 133369","(Chinese, born 1973) (Chinese, born 1973)",() (Chinese) (Chinese),(0) (1973) (1973),(0) (0) (0),() (male) (female),2015–2018,Digital photograph,,Gift of OPEN Architecture,277.2020.1,Architecture,Architecture & Design,2020-11-16,Y,416205,https://www.moma.org/collection/works/416205,https://www.moma.org/media/W1siZiIsIjQ5NjM0OCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=b889cc5124c24274,,,,,,,,,, +"Beehive – The Multistory Residential Amphitheatre, project (Schematic perspective)","Juraj Neidhardt, Franjo Neidhardt","49995, 74425","(Croatian, 1901 – 1979) (1907–1984)",(Croatian) (),(1901) (1907),(1979) (1984),(male) (),1967,"Pencil, ink, and cut and pasted papers and photographs","9 13/16 × 21 1/4"" (25 × 54 cm)",Committee on Architecture and Design Funds,137.2021,Architecture,Architecture & Design,2021-04-26,Y,422511,https://www.moma.org/collection/works/422511,https://www.moma.org/media/W1siZiIsIjUwNzQwMSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=2016c94ce38ff18c,,,,,25.0,,,54.0,, +"National Assembly of Bosnia and Herzegovina, Sarajevo, phase 2","Juraj Neidhardt, Džemal Čelić, Enver Jahić, Boro Mileusnić, Zlatko Ugljen","49995, 50008, 50029, 50014, 50030","(Croatian, 1901 – 1979) (1922–1991) (Bosnian, born 1929)",(Croatian) () () () (Bosnian),(1901) (1922) (0) (0) (1929),(1979) (1991) (0) (0) (0),(male) () () () (male),1965–1979,Pencil and cut and pasted paper and photographs,"3 9/16 × 5 1/8"" (9 × 13 cm)",Committee on Architecture and Design Funds,136.2021,Architecture,Architecture & Design,2021-04-26,Y,422533,https://www.moma.org/collection/works/422533,https://www.moma.org/media/W1siZiIsIjUwNzQwMCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=abae20ee29e88c5a,,,,,9.0,,,13.0,, +"Art Pavilion project, Sarajevo, Bosnia and Herzegovina",Juraj Neidhardt,49995,"(Croatian, 1901 – 1979)",(Croatian),(1901),(1979),(male),1971,Cut and pasted paper and photographs,"5 7/8 × 8 1/4"" (15 × 21 cm)",Committee on Architecture and Design Funds,157.2021,Architecture,Architecture & Design,2021-04-26,Y,422525,https://www.moma.org/collection/works/422525,https://www.moma.org/media/W1siZiIsIjUwNzQyMCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=83e24b673ea92935,,,,,15.0,,,21.0,, +"Hanging Motel at the Miljacka River, Sarajevo, Bosnia and Herzegovina",Juraj Neidhardt,49995,"(Croatian, 1901 – 1979)",(Croatian),(1901),(1979),(male),1963–1964,Cut and pasted photo on paper,"5 7/8 × 8 1/4"" (15 × 21 cm)",Committee on Architecture and Design Funds,131.2021,Architecture,Architecture & Design,2021-04-26,Y,422505,https://www.moma.org/collection/works/422505,https://www.moma.org/media/W1siZiIsIjUwNzM5NSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=7ae485ffb352966c,,,,,15.0,,,21.0,, +"Tourist Highway project, Bosnia and Herzegovina (Conceptual plan from the sea to the Sava River)",Juraj Neidhardt,49995,"(Croatian, 1901 – 1979)",(Croatian),(1901),(1979),(male),1972,"Pencil, ink, and cut and pasted photographs","14 3/16 × 6 11/16"" (36 × 17 cm)",Committee on Architecture and Design Funds,160.2021,Architecture,Architecture & Design,2021-04-26,Y,422506,https://www.moma.org/collection/works/422506,https://www.moma.org/media/W1siZiIsIjUwNzQyMyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=ef3651dba296131a,,,,,36.0,,,17.0,, +"Socialist City Study, project",Juraj Neidhardt,49995,"(Croatian, 1901 – 1979)",(Croatian),(1901),(1979),(male),1969,"Pencil, cut and pasted papers, letratone, and photographs","14 15/16 × 14 3/16"" (38 × 36 cm)",Committee on Architecture and Design Funds,152.2021,Architecture,Architecture & Design,2021-04-26,Y,422513,https://www.moma.org/collection/works/422513,https://www.moma.org/media/W1siZiIsIjUwNzQzOSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=f6ad7e1492775f63,,,,,38.0,,,36.0,, +Border Postcard: SD-TJ,"Estudio Teddy Cruz + Fonna Forman, Teddy Cruz, Fonna Forman","34153, 34147, 134598","(American, founded 2000) (American, born Guatemala 1962) (American, born 1968)",(American) (American) (American),(2000) (1962) (1968),(0) (0) (0),() (male) (female),2008,Photocollage,"49 × 97"" (124.5 × 246.4 cm)",Gift of James Garfinkel,726.2022,Architecture,Architecture & Design,2022-11-07,Y,437343,https://www.moma.org/collection/works/437343,,,,0.0,,124.4602489205,,,246.380492761,, +T3-14 (Tempe a Pailla),Eileen Gray,2313,"(Anglo-Irish, 1879–1976)",(British),(1879),(1976),(female),c. 1935,"Cut and pasted silver gelatin photographs and printed paper, gouache and pencil on board, plastic sheet, and metal staples","9 13/16 × 12 13/16"" (25 × 32.5 cm)","Gift of Jo Carole and Ronald S. Lauder, and Elise Jaffe + Jeffrey Brown",729.2022,Architecture,Architecture & Design,2022-11-07,Y,437921,https://www.moma.org/collection/works/437921,,,,,,24.9936499873,,,32.5120650241,, +Eileen E1027,Eileen Gray,2313,"(Anglo-Irish, 1879–1976)",(British),(1879),(1976),(female),c. 1935,Cut and pasted printed paper and metallic paper on gelatin silver photograph,"9 13/16 × 6 11/16"" (25 × 17 cm)","Gift of Jo Carole and Ronald S. Lauder, and Elise Jaffe + Jeffrey Brown",731.2022,Architecture,Architecture & Design,2022-11-07,Y,437923,https://www.moma.org/collection/works/437923,,,,,,24.9936499873,,,16.9926339853,, +T4-7 (Tempe a Pailla),Eileen Gray,2313,"(Anglo-Irish, 1879–1976)",(British),(1879),(1976),(female),c. 1935,"Cut and pasted silver gelatin photographs and printed paper, gouache and pencil on board, plastic sheet, and metal staples","9 13/16 × 12 13/16"" (25 × 32.5 cm)","Gift of Jo Carole and Ronald S. Lauder, and Elise Jaffe + Jeffrey Brown",728.2022,Architecture,Architecture & Design,2022-11-07,Y,437920,https://www.moma.org/collection/works/437920,,,,,,24.9936499873,,,32.5120650241,, +T4-6 (Bauhaus),Eileen Gray,2313,"(Anglo-Irish, 1879–1976)",(British),(1879),(1976),(female),c. 1930-1935,"Cut and pasted printed papers, metallic paper, gelatin silver photograph and colored plastic sheet, elastic cord, gouache and pencil on board, plastic sheet, and metal staples","9 13/16 × 12 13/16"" (25 × 32.5 cm)","Gift of Jo Carole and Ronald S. Lauder, and Elise Jaffe + Jeffrey Brown",727.2022,Architecture,Architecture & Design,2022-11-07,Y,437919,https://www.moma.org/collection/works/437919,,,,,,24.9936499873,,,32.5120650241,, +T3-15 (Miss E. Gray),Eileen Gray,2313,"(Anglo-Irish, 1879–1976)",(British),(1879),(1976),(female),c. 1935,"Cut and pasted colored papers, printed paper, gelatin silver photograph, watercolor and pencil on board, plastic sheet, and metal staples","9 13/16 × 12 13/16"" (25 × 32.5 cm)","Gift of Jo Carole and Ronald S. Lauder, and Elise Jaffe + Jeffrey Brown",732.2022,Architecture,Architecture & Design,2022-11-07,Y,437924,https://www.moma.org/collection/works/437924,,,,,,24.9936499873,,,32.5120650241,, +"Sardar Vallabhbhai Patel Municipal Stadium, Ahmedabad, India,","Randhir Singh, Charles Correa, Mahendra Raj","133347, 75460, 74066","(Indian, born 1976) (Indian, 1930–2015) (Indian, 1924 – 2022)",(Indian) (Indian) (Indian),(1976) (1930) (1924),(0) (2015) (2022),(male) (male) (male),2020–2021,Digital photograph,,Committee on Architecture and Design Funds,80.2023,Architecture,Architecture & Design,2023-05-04,Y,447684,https://www.moma.org/collection/works/447684,https://www.moma.org/media/W1siZiIsIjUzOTUzNCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=2c637a0c5106be7e,,,,,,,,,, +"Premabhai Hall, Ahmedabad, India","Randhir Singh, Balkrishna Doshi, Mahendra Raj","133347, 75518, 74066","(Indian, born 1976) (Indian, 1927 – 2023) (Indian, 1924 – 2022)",(Indian) (Indian) (Indian),(1976) (1927) (1924),(0) (2023) (2022),(male) (male) (male),2020–2021,Digital photograph,,Committee on Architecture and Design Funds,79.2023,Architecture,Architecture & Design,2023-05-04,Y,447683,https://www.moma.org/collection/works/447683,https://www.moma.org/media/W1siZiIsIjUzOTUzMyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=c76954b54f44aa0e,,,,,,,,,, +"Jesuit Chapel, Colombo, Sri Lanka",Valentine Gunasekara,75527,"(Sri Lankan, 1931–2017)",(Sri Lankan),(1931),(2017),(male),1960,Board with pasted photographic prints,"11 × 8 1/2"" (27.9 × 21.6 cm)",Committee on Architecture and Design Funds,64.2023,Architecture,Architecture & Design,2023-05-04,Y,446129,https://www.moma.org/collection/works/446129,https://www.moma.org/media/W1siZiIsIjU0MTg5NiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=43b3817be1a41216,,,,,27.9400558801,,,21.5900431801,, +"Shri Ram Centre for Art and Culture, New Delhi, India","Randhir Singh, Shivnath Prasad, Mahendra Raj","133347, 75501, 74066","(Indian, born 1976) (Indian, born 1922) (Indian, 1924 – 2022)",(Indian) (Indian) (Indian),(1976) (1922) (1924),(0) (0) (2022),(male) (male) (male),2020–2021,Digital photograph,,Committee on Architecture and Design Funds,78.2023,Architecture,Architecture & Design,2023-05-04,Y,447682,https://www.moma.org/collection/works/447682,https://www.moma.org/media/W1siZiIsIjUzOTUzMiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=dc8c027512218fa3,,,,,,,,,, +"India International Centre (IIC), New Delhi, India,","Randhir Singh, Joseph Allen Stein","133347, 75502","(Indian, born 1976) (American, 1912–2001)",(Indian) (American),(1976) (1912),(0) (2001),(male) (male),2020–2021,Digital photograph,,Committee on Architecture and Design Funds,85.2023,Architecture,Architecture & Design,2023-05-04,Y,447687,https://www.moma.org/collection/works/447687,https://www.moma.org/media/W1siZiIsIjUzOTUyNiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=ea2d4b023a71ec77,,,,,,,,,, +"College of Arts and Crafts (Institute of Fine Arts), University of Dhaka, Bangladesh","Randhir Singh, Muzharul Islam","133347, 75481","(Indian, born 1976) (Bangladeshi, 1923–2012)",(Indian) (Bangladeshi),(1976) (1923),(0) (2012),(male) (male),2020–2021,Digital photograph,,Committee on Architecture and Design Funds,83.2023,Architecture,Architecture & Design,2023-05-04,Y,447686,https://www.moma.org/collection/works/447686,https://www.moma.org/media/W1siZiIsIjUzOTUzNiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=2978141f58860372,,,,,,,,,, +"Golconde guesthouse, Puducherry, India","Randhir Singh, Antonin Raymond, George Nakashima, François (František) Sammer, Chandulal Shah","133347, 4827, 26803, 136164, 136165","(Indian, born 1976) (American, 1888–1976) (American, 1905–1990) (Czech, 1907 – 1973)",(Indian) (American) (American) (Czech) (),(1976) (1888) (1905) (1907) (0),(0) (1976) (1990) (1973) (0),(male) (male) (male) (male) (male),2020–2021,Digital photograph,,Committee on Architecture and Design Funds,86.2023,Architecture,Architecture & Design,2023-05-04,Y,447688,https://www.moma.org/collection/works/447688,https://www.moma.org/media/W1siZiIsIjUzOTUyNyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=ab4ef8fe8d7ce508,,,,,,,,,, +"Dudhsagar Dairy, Mehsana, India","Randhir Singh, Achyut Kanvinde, Shaukat Rai","133347, 75483, 134611","(Indian, born 1976) (Indian, 1916–2002) (Indian, 1922 – 2003)",(Indian) (Indian) (Indian),(1976) (1916) (1922),(0) (2002) (2003),(male) (male) (),2020–2021,Digital photograph,,Committee on Architecture and Design Funds,89.2023,Architecture,Architecture & Design,2023-05-04,Y,447689,https://www.moma.org/collection/works/447689,https://www.moma.org/media/W1siZiIsIjUzOTUyOCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=d13bdccda2df8053,,,,,,,,,, +"Kamalapur Railway Station, Dhaka, Bangladesh,","Randhir Singh, Daniel C. Dunham, Robert Boughey, Louis Berger","133347, 136166, 75517, 84166","(Indian, born 1976) (American, 1929 – 2000) (American, born 1936)",(Indian) (American) (American) (),(1976) (1929) (1936) (0),(0) (2000) (0) (0),(male) (male) (male) (male),2020–2021,Digital photograph,,Committee on Architecture and Design Funds,90.2023,Architecture,Architecture & Design,2023-05-04,Y,447690,https://www.moma.org/collection/works/447690,https://www.moma.org/media/W1siZiIsIjUzOTUyOSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=3b27e58ca5c6a9ec,,,,,,,,,, +"Kanchanjunga Apartments at Cumbala Hill, Mumbai, India,","Randhir Singh, Charles Correa","133347, 75460","(Indian, born 1976) (Indian, 1930–2015)",(Indian) (Indian),(1976) (1930),(0) (2015),(male) (male),2020–2021,Digital photograph,,Committee on Architecture and Design Funds,91.2023,Architecture,Architecture & Design,2023-05-04,Y,447691,https://www.moma.org/collection/works/447691,https://www.moma.org/media/W1siZiIsIjUzOTUzMCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=3af7bbeaee062484,,,,,,,,,, +"Tangalle Bay Beach Hotel, Tangalle, Sri Lanka",Valentine Gunasekara,75527,"(Sri Lankan, 1931–2017)",(Sri Lankan),(1931),(2017),(male),1969–1973,Board with pasted photographic prints,"11 × 8 1/2"" (27.9 × 21.6 cm)",Committee on Architecture and Design Funds,66.2023.9,Architecture,Architecture & Design,2023-05-04,Y,446123,https://www.moma.org/collection/works/446123,https://www.moma.org/media/W1siZiIsIjU0MTY3OSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=b211f1939552e7d0,,,,,27.9400558801,,,21.5900431801,, +"University of Dhaka Library, Dhaka, Bangladesh","Randhir Singh, Muzharul Islam","133347, 75481","(Indian, born 1976) (Bangladeshi, 1923–2012)",(Indian) (Bangladeshi),(1976) (1923),(0) (2012),(male) (male),2020–2021,Digital photograph,,Committee on Architecture and Design Funds,81.2023,Architecture,Architecture & Design,2023-05-04,Y,447685,https://www.moma.org/collection/works/447685,https://www.moma.org/media/W1siZiIsIjUzOTUzNSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=80800ebae1f51340,,,,,,,,,, +"Tangalle Bay Beach Hotel, Tangalle, Sri Lanka",Valentine Gunasekara,75527,"(Sri Lankan, 1931–2017)",(Sri Lankan),(1931),(2017),(male),1969–1973,Board with pasted photographic prints,"11 × 8 1/2"" (27.9 × 21.6 cm)",Committee on Architecture and Design Funds,66.2023.8,Architecture,Architecture & Design,2023-05-04,Y,446122,https://www.moma.org/collection/works/446122,https://www.moma.org/media/W1siZiIsIjU0MTY3OCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=ec83b47b3b3f62c4,,,,,27.9400558801,,,21.5900431801,, +"Kanchanjunga Apartments, Bombay, India",Randhir Singh,133347,"(Indian, born 1976)",(Indian),(1976),(0),(male),2020–2021,Digital photograph,,Committee on Architecture and Design Funds,76.2023,Architecture,Architecture & Design,2023-05-04,Y,421695,https://www.moma.org/collection/works/421695,https://www.moma.org/media/W1siZiIsIjUxMjUyMSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=0554da861d7a2b76,,,,,,,,,, +"Tangalle Bay Beach Hotel, Tangalle, Sri Lanka",Valentine Gunasekara,75527,"(Sri Lankan, 1931–2017)",(Sri Lankan),(1931),(2017),(male),1969–1973,Board with pasted photographic prints,"11 × 8 1/2"" (27.9 × 21.6 cm)",Committee on Architecture and Design Funds,66.2023.6,Architecture,Architecture & Design,2023-05-04,Y,446120,https://www.moma.org/collection/works/446120,https://www.moma.org/media/W1siZiIsIjU0MTY3NiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=989c6bf3ad3dc4a2,,,,,27.9400558801,,,21.5900431801,, +"Tangalle Bay Beach Hotel, Tangalle, Sri Lanka",Valentine Gunasekara,75527,"(Sri Lankan, 1931–2017)",(Sri Lankan),(1931),(2017),(male),1969–1973,Board with pasted photographic prints,"11 × 8 1/2"" (27.9 × 21.6 cm)",Committee on Architecture and Design Funds,66.2023.5,Architecture,Architecture & Design,2023-05-04,Y,446119,https://www.moma.org/collection/works/446119,https://www.moma.org/media/W1siZiIsIjU0MTY3NSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=e43eb8a9e2af0d66,,,,,27.9400558801,,,21.5900431801,, +"Tangalle Bay Beach Hotel, Tangalle, Sri Lanka",Valentine Gunasekara,75527,"(Sri Lankan, 1931–2017)",(Sri Lankan),(1931),(2017),(male),1969–1973,Board with pasted photographic prints,"11 × 8 1/2"" (27.9 × 21.6 cm)",Committee on Architecture and Design Funds,66.2023.4,Architecture,Architecture & Design,2023-05-04,Y,446118,https://www.moma.org/collection/works/446118,https://www.moma.org/media/W1siZiIsIjU0MTY3NCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=8b8b6a0be4591b57,,,,,27.9400558801,,,21.5900431801,, +"Tangalle Bay Beach Hotel, Tangalle, Sri Lanka",Valentine Gunasekara,75527,"(Sri Lankan, 1931–2017)",(Sri Lankan),(1931),(2017),(male),1969–1973,Board with pasted photographic prints,"11 × 8 1/2"" (27.9 × 21.6 cm)",Committee on Architecture and Design Funds,66.2023.3,Architecture,Architecture & Design,2023-05-04,Y,446117,https://www.moma.org/collection/works/446117,https://www.moma.org/media/W1siZiIsIjU0MTY3MyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=2d7645665405556d,,,,,27.9400558801,,,21.5900431801,, +"Tangalle Bay Beach Hotel, Tangalle, Sri Lanka",Valentine Gunasekara,75527,"(Sri Lankan, 1931–2017)",(Sri Lankan),(1931),(2017),(male),1969–1973,Board with pasted photographic prints,"11 × 8 1/2"" (27.9 × 21.6 cm)",Committee on Architecture and Design Funds,66.2023.2,Architecture,Architecture & Design,2023-05-04,Y,446116,https://www.moma.org/collection/works/446116,https://www.moma.org/media/W1siZiIsIjU0MTY3MiJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=238c68f0a0f5b253,,,,,27.9400558801,,,21.5900431801,, +"Tangalle Bay Beach Hotel, Tangalle, Sri Lanka",Valentine Gunasekara,75527,"(Sri Lankan, 1931–2017)",(Sri Lankan),(1931),(2017),(male),1969–1973,Board with pasted photographic prints,"11 × 8 1/2"" (27.9 × 21.6 cm)",Committee on Architecture and Design Funds,66.2023.1,Architecture,Architecture & Design,2023-05-04,Y,446115,https://www.moma.org/collection/works/446115,https://www.moma.org/media/W1siZiIsIjU0MTY3MSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=c9ac30d68f04c236,,,,,27.9400558801,,,21.5900431801,, +"NCDC Office Building, New Delhi, India",Randhir Singh,133347,"(Indian, born 1976)",(Indian),(1976),(0),(male),2020–2021,Digital photograph,,Committee on Architecture and Design Funds,92.2023,Architecture,Architecture & Design,2023-05-04,Y,427808,https://www.moma.org/collection/works/427808,https://www.moma.org/media/W1siZiIsIjUwNzk5NSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=013222a00a29e688,,,,,,,,,, +"Lalbhai Institute of Indology, Ahmedabad, India","Randhir Singh, Balkrishna Doshi","133347, 75518","(Indian, born 1976) (Indian, 1927 – 2023)",(Indian) (Indian),(1976) (1927),(0) (2023),(male) (male),2020–2021,Digital photograph,,Committee on Architecture and Design Funds,77.2023,Architecture,Architecture & Design,2023-05-04,Y,422875,https://www.moma.org/collection/works/422875,https://www.moma.org/media/W1siZiIsIjQ5OTEwMSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=2dbc214f73129c38,,,,,,,,,, +"Kamala House, Ahmedabad, India",Randhir Singh,133347,"(Indian, born 1976)",(Indian),(1976),(0),(male),2020–2021,Digital photograph,,Committee on Architecture and Design Funds,87.2023,Architecture,Architecture & Design,2023-05-04,Y,421697,https://www.moma.org/collection/works/421697,https://www.moma.org/media/W1siZiIsIjUwODI1MCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=e4170cb5571981cd,,,,,,,,,, +"India International Centre (IIC), New Delhi, India",Randhir Singh,133347,"(Indian, born 1976)",(Indian),(1976),(0),(male),2020–2021,Digital photograph,,Committee on Architecture and Design Funds,84.2023,Architecture,Architecture & Design,2023-05-04,Y,421575,https://www.moma.org/collection/works/421575,https://www.moma.org/media/W1siZiIsIjUxMjU5MSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=fc6c71d74ab1eef5,,,,,,,,,, +"Indian Institute of Management (IIM), Bangalore, India",Randhir Singh,133347,"(Indian, born 1976)",(Indian),(1976),(0),(male),2020–2021,Digital photograph,,Committee on Architecture and Design Funds,82.2023,Architecture,Architecture & Design,2023-05-04,Y,421572,https://www.moma.org/collection/works/421572,https://www.moma.org/media/W1siZiIsIjQ5NTY2OCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=554c291ad6e25c0f,,,,,,,,,, +"Chittagong University, Chittagong, Bangladesh",Randhir Singh,133347,"(Indian, born 1976)",(Indian),(1976),(0),(male),2020–2021,Digital photograph,,Committee on Architecture and Design Funds,88.2023,Architecture,Architecture & Design,2023-05-04,Y,421567,https://www.moma.org/collection/works/421567,https://www.moma.org/media/W1siZiIsIjQ5NTY2MyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=547cedc7da9d504c,,,,,,,,,, +"New Secretariat Building, Kolkata, India","Randhir Singh, Habib Rahman","133347, 75505","(Indian, born 1976) (Indian, 1915–1995)",(Indian) (Indian),(1976) (1915),(0) (1995),(male) (male),2020–2021,Digital photograph,,Committee on Architecture and Design Funds,93.2023,Architecture,Architecture & Design,2023-05-04,Y,447692,https://www.moma.org/collection/works/447692,https://www.moma.org/media/W1siZiIsIjUzOTUzMSJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=94a5cae7c9617a63,,,,,,,,,, +"Tangalle Bay Beach Hotel, Tangalle, Sri Lanka",Valentine Gunasekara,75527,"(Sri Lankan, 1931–2017)",(Sri Lankan),(1931),(2017),(male),1969–1973,Board with pasted photographic prints,"11 × 8 1/2"" (27.9 × 21.6 cm)",Committee on Architecture and Design Funds,66.2023.7,Architecture,Architecture & Design,2023-05-04,Y,446121,https://www.moma.org/collection/works/446121,https://www.moma.org/media/W1siZiIsIjU0MTY3NyJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=6c4956b3e1a170d4,,,,,27.9400558801,,,21.5900431801,, +"Tangalle Bay Beach Hotel, Tangalle, Sri Lanka",Valentine Gunasekara,75527,"(Sri Lankan, 1931–2017)",(Sri Lankan),(1931),(2017),(male),1969–1973,nine sheets with pasted photographic prints,"each: 11 × 8 1/2"" (27.9 × 21.6 cm)",Committee on Architecture and Design Funds,66.2023.1-9,Architecture,Architecture & Design,2023-05-04,N,448160,,,,,,,27.9400558801,,,21.5900431801,, +"Generator Project, White Oak, Florida, Full-Scale On-Site Mock-up (with Figure)",Cedric Price,7986,"(British, 1934–2003)",(British),(1934),(2003),(male),1978-80,Color photograph,"7 x 7"" (17.8 x 17.8 cm)",Gift of The Howard Gilman Foundation,1256.2000,Architecture,Architecture & Design,,Y,872,https://www.moma.org/collection/works/872,https://www.moma.org/media/W1siZiIsIjUzMDE3MCJdLFsicCIsImNvbnZlcnQiLCItcmVzaXplIDEwMjR4MTAyNFx1MDAzZSJdXQ.jpg?sha=9eb4ba0ae6c38ef0,,,,,17.78,,,17.78,, diff --git a/data/filtered_moma_dat.py b/data/filtered_moma_dat.py new file mode 100644 index 0000000..6ed6045 --- /dev/null +++ b/data/filtered_moma_dat.py @@ -0,0 +1,17 @@ +import pandas as pd + +# Load the CSV file +df = pd.read_csv("/Users/colingeraghty/Downloads/Artworks-2.csv") + +# Filter the DataFrame based on the given criteria +filtered_df = df[ + (df['Department'] == 'Architecture & Design') & + (df['Classification'] == 'Architecture') & + df['Medium'].str.contains('photo', case=False, na=False) +] + +# Sort the DataFrame (You can specify the sorting columns if needed, here it's just an example) +sorted_df = filtered_df.sort_values(by=['DateAcquired'], ascending=True) + +# Save the sorted DataFrame to a new CSV file in the specified folder +sorted_df.to_csv("/Users/colingeraghty/Documents/DV24/Interactive-Data-Vis-Spring2024/data/Filtered_Artworks.csv", index=False) diff --git a/detail.html b/detail.html new file mode 100644 index 0000000..a285a40 --- /dev/null +++ b/detail.html @@ -0,0 +1,20 @@ + + + + + +Unidentified Photographer + + + +
+
+ Unidentified Photographer +
+
+
+ + + + + diff --git a/f_und_d.png b/f_und_d.png new file mode 100644 index 0000000..7acc691 Binary files /dev/null and b/f_und_d.png differ diff --git a/festons.html b/festons.html new file mode 100644 index 0000000..5f31d44 --- /dev/null +++ b/festons.html @@ -0,0 +1,21 @@ + + + + + + Festons und Dekorative Gruppen + + + + +
+ Festons und Dekorative Gruppen +
+ +
+
+ + + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..f801f91 --- /dev/null +++ b/index.html @@ -0,0 +1,58 @@ + + + + + + Unidentified Photographer + + + + +
Unidentified Photographer
+
+ Although the Museum of Modern Art (MoMA) is renowned for its iconic artists, it also houses an intriguing collection of over 2,600 photographs by unknown photographers. These anonymous artists, who might never have imagined their work would be celebrated in such a prestigious setting, bring a unique charm to MoMA’s collection. In many ways, their unanticipated presence makes their work even more deserving of recognition. + This project categorizes these images and offers interactive tools for visitors to explore and appreciate the artistry of these forgotten photographers +
+ +
+ +
+
Interesting Faces
+
+
+ + +
+
Bad Boys and One Bad Girl
+
+
+ + +
+
Festons und Dekorative Gruppen
+
+
+ + +
+
Places
+
+
+
+ + + + + + + + + + + + + + + + + diff --git a/main-festons.js b/main-festons.js new file mode 100644 index 0000000..5477ba4 --- /dev/null +++ b/main-festons.js @@ -0,0 +1,159 @@ +const festonsUrls = [ + "https://www.moma.org/collection/works/47949", +"https://www.moma.org/collection/works/141557", +"https://www.moma.org/collection/works/141558", +"https://www.moma.org/collection/works/141559", +"https://www.moma.org/collection/works/141560", +"https://www.moma.org/collection/works/141561", +"https://www.moma.org/collection/works/141562", +"https://www.moma.org/collection/works/141564", +"https://www.moma.org/collection/works/141565", +"https://www.moma.org/collection/works/141566", +"https://www.moma.org/collection/works/141567", +"https://www.moma.org/collection/works/141568", +"https://www.moma.org/collection/works/141569", +"https://www.moma.org/collection/works/141570", +"https://www.moma.org/collection/works/141571", +"https://www.moma.org/collection/works/141572", +"https://www.moma.org/collection/works/141573", +"https://www.moma.org/collection/works/141574", +"https://www.moma.org/collection/works/141575", +"https://www.moma.org/collection/works/141576", +"https://www.moma.org/collection/works/141577", +"https://www.moma.org/collection/works/141578", +"https://www.moma.org/collection/works/141580", +"https://www.moma.org/collection/works/141581", +"https://www.moma.org/collection/works/141582", +"https://www.moma.org/collection/works/141583", +"https://www.moma.org/collection/works/141584", +"https://www.moma.org/collection/works/141585", +"https://www.moma.org/collection/works/141586", +"https://www.moma.org/collection/works/141587", +"https://www.moma.org/collection/works/141588", +"https://www.moma.org/collection/works/141591", +"https://www.moma.org/collection/works/141592", +"https://www.moma.org/collection/works/141593", +"https://www.moma.org/collection/works/141594", +"https://www.moma.org/collection/works/141595", +"https://www.moma.org/collection/works/141596", +"https://www.moma.org/collection/works/141597", +"https://www.moma.org/collection/works/141598", +"https://www.moma.org/collection/works/141599", +"https://www.moma.org/collection/works/141600", +"https://www.moma.org/collection/works/141601", +"https://www.moma.org/collection/works/141603", +"https://www.moma.org/collection/works/141604", +"https://www.moma.org/collection/works/141605", +"https://www.moma.org/collection/works/141606", +"https://www.moma.org/collection/works/141607", +"https://www.moma.org/collection/works/141608", +"https://www.moma.org/collection/works/141609", +"https://www.moma.org/collection/works/141610", +"https://www.moma.org/collection/works/141611", +"https://www.moma.org/collection/works/141612", +"https://www.moma.org/collection/works/141613", +"https://www.moma.org/collection/works/141614", +"https://www.moma.org/collection/works/141615", +"https://www.moma.org/collection/works/141616", +"https://www.moma.org/collection/works/141617", +"https://www.moma.org/collection/works/141618", +"https://www.moma.org/collection/works/141619", +"https://www.moma.org/collection/works/141620", +"https://www.moma.org/collection/works/141622", +"https://www.moma.org/collection/works/141623", +"https://www.moma.org/collection/works/141624", +"https://www.moma.org/collection/works/141625", +"https://www.moma.org/collection/works/141626", +"https://www.moma.org/collection/works/141627", +"https://www.moma.org/collection/works/141628", +"https://www.moma.org/collection/works/141629", +"https://www.moma.org/collection/works/141630", +"https://www.moma.org/collection/works/141631", +"https://www.moma.org/collection/works/141632", +"https://www.moma.org/collection/works/141633", +"https://www.moma.org/collection/works/141634", +"https://www.moma.org/collection/works/141635", +"https://www.moma.org/collection/works/141636", +"https://www.moma.org/collection/works/141637", +"https://www.moma.org/collection/works/141638", +"https://www.moma.org/collection/works/141639", +"https://www.moma.org/collection/works/141640", +"https://www.moma.org/collection/works/141641", +"https://www.moma.org/collection/works/141642", +"https://www.moma.org/collection/works/141643", +"https://www.moma.org/collection/works/141644", +"https://www.moma.org/collection/works/141645", +"https://www.moma.org/collection/works/141646", +"https://www.moma.org/collection/works/141647", +"https://www.moma.org/collection/works/141648", +"https://www.moma.org/collection/works/141649", +"https://www.moma.org/collection/works/141650", +"https://www.moma.org/collection/works/141651", +"https://www.moma.org/collection/works/141652", +"https://www.moma.org/collection/works/141653", +"https://www.moma.org/collection/works/141654", +"https://www.moma.org/collection/works/141655", +"https://www.moma.org/collection/works/141656", +"https://www.moma.org/collection/works/141657", +"https://www.moma.org/collection/works/141658", +"https://www.moma.org/collection/works/141659", +"https://www.moma.org/collection/works/141660", +"https://www.moma.org/collection/works/141661", +"https://www.moma.org/collection/works/141662", +"https://www.moma.org/collection/works/141663", +"https://www.moma.org/collection/works/141664", +"https://www.moma.org/collection/works/141665", +"https://www.moma.org/collection/works/141666", +"https://www.moma.org/collection/works/141667", +"https://www.moma.org/collection/works/141668", +"https://www.moma.org/collection/works/141669", +"https://www.moma.org/collection/works/141670", +"https://www.moma.org/collection/works/141671", +"https://www.moma.org/collection/works/141672", +"https://www.moma.org/collection/works/141673", +"https://www.moma.org/collection/works/141674", +"https://www.moma.org/collection/works/141675", +"https://www.moma.org/collection/works/141676", +"https://www.moma.org/collection/works/141677", +"https://www.moma.org/collection/works/141678", +"https://www.moma.org/collection/works/141679", +"https://www.moma.org/collection/works/141680", +"https://www.moma.org/collection/works/141681", +"https://www.moma.org/collection/works/141682", +"https://www.moma.org/collection/works/141683", +"https://www.moma.org/collection/works/141684", +"https://www.moma.org/collection/works/141685", +"https://www.moma.org/collection/works/141686", +"https://www.moma.org/collection/works/141687", +"https://www.moma.org/collection/works/141688", +"https://www.moma.org/collection/works/141689", +"https://www.moma.org/collection/works/141690", +"https://www.moma.org/collection/works/141691", +"https://www.moma.org/collection/works/141692", +"https://www.moma.org/collection/works/141693", +"https://www.moma.org/collection/works/141694", +"https://www.moma.org/collection/works/141695", +"https://www.moma.org/collection/works/141696", +"https://www.moma.org/collection/works/141697", +"https://www.moma.org/collection/works/141698", +"https://www.moma.org/collection/works/141699", +"https://www.moma.org/collection/works/141700", +"https://www.moma.org/collection/works/141701", + ]; + + const festonsGridCountX = 20; // Columns + const festonsGridCountY = 7; // Rows + + const overlayFestons = document.getElementById('overlay-festons'); + + for (let i = 0; i < festonsGridCountX * festonsGridCountY; i++) { + const area = document.createElement('div'); + area.className = 'clickable-area'; + area.style.gridColumn = i % festonsGridCountX + 1; + area.style.gridRow = Math.floor(i / festonsGridCountX) + 1; + area.addEventListener('click', () => { + window.open(festonsUrls[i], '_blank'); + }); + overlayFestons.appendChild(area); + } + \ No newline at end of file diff --git a/main-mugshots.js b/main-mugshots.js new file mode 100644 index 0000000..066dc4a --- /dev/null +++ b/main-mugshots.js @@ -0,0 +1,36 @@ +const mugshotUrls = [ + "https://www.moma.org/collection/works/47931", + "https://www.moma.org/collection/works/400496", + "https://www.moma.org/collection/works/400497", + "https://www.moma.org/collection/works/400498", + "https://www.moma.org/collection/works/400499", + "https://www.moma.org/collection/works/400500", + "https://www.moma.org/collection/works/400501", + "https://www.moma.org/collection/works/400502", + "https://www.moma.org/collection/works/400503", + "https://www.moma.org/collection/works/400504", + "https://www.moma.org/collection/works/400505", + "https://www.moma.org/collection/works/400506", + "https://www.moma.org/collection/works/400507", + "https://www.moma.org/collection/works/400508", + "https://www.moma.org/collection/works/400509", + "https://www.moma.org/collection/works/400510" + ]; + + const mugshotGridCount = 4; // Change this to 4 for a 4x4 grid + + // Select the overlay for the mug shots + const overlayMugshots = document.getElementById('overlay-mugshots'); + + // Create the clickable areas for the mug shots + for (let i = 0; i < mugshotGridCount * mugshotGridCount; i++) { + const area = document.createElement('div'); + area.className = 'clickable-area'; + area.style.gridColumn = i % mugshotGridCount + 1; + area.style.gridRow = Math.floor(i / mugshotGridCount) + 1; + area.addEventListener('click', () => { + window.open(mugshotUrls[i], '_blank'); + }); + overlayMugshots.appendChild(area); + } + \ No newline at end of file diff --git a/main.js b/main.js new file mode 100644 index 0000000..75b8054 --- /dev/null +++ b/main.js @@ -0,0 +1,124 @@ +const urls = [ + "https://www.moma.org/collection/works/45665?artist_id=8595&page=1&sov_referrer=artist", + "https://www.moma.org/collection/works/45262?artist_id=8595&page=1&sov_referrer=artist", + "https://www.moma.org/collection/works/45290?artist_id=8595&page=1&sov_referrer=artist", + "https://www.moma.org/collection/works/58052?artist_id=8595&page=1&sov_referrer=artist", + "https://www.moma.org/collection/works/45319?artist_id=8595&page=1&sov_referrer=artist", + "https://www.moma.org/collection/works/124754?artist_id=8595&page=1&sov_referrer=artist", + "https://www.moma.org/collection/works/124758?artist_id=8595&page=1&sov_referrer=artist", + "https://www.moma.org/collection/works/124784", + "https://www.moma.org/collection/works/55462", + "https://www.moma.org/collection/works/49650", + "https://www.moma.org/collection/works/45360", + "https://www.moma.org/collection/works/45540", + "https://www.moma.org/collection/works/45565", + "https://www.moma.org/collection/works/45590", + "https://www.moma.org/collection/works/45614", + "https://www.moma.org/collection/works/45688", + "https://www.moma.org/collection/works/45974", + "https://www.moma.org/collection/works/45190", + "https://www.moma.org/collection/works/47913", + "https://www.moma.org/collection/works/55439", + "https://www.moma.org/collection/works/55447", + "https://www.moma.org/collection/works/55455", + "https://www.moma.org/collection/works/273630", + "https://www.moma.org/collection/works/273631", + "https://www.moma.org/collection/works/273632", + "https://www.moma.org/collection/works/273633", + "https://www.moma.org/collection/works/273634", + "https://www.moma.org/collection/works/273635", + "https://www.moma.org/collection/works/273636", + "https://www.moma.org/collection/works/273637", + "https://www.moma.org/collection/works/45995", + "https://www.moma.org/collection/works/124756", + "https://www.moma.org/collection/works/51524", + "https://www.moma.org/collection/works/124753", + "https://www.moma.org/collection/works/124757", + "https://www.moma.org/collection/works/49630", + "https://www.moma.org/collection/works/49640", + "https://www.moma.org/collection/works/45333", + "https://www.moma.org/collection/works/45711", + "https://www.moma.org/collection/works/45757", + "https://www.moma.org/collection/works/178898", + "https://www.moma.org/collection/works/178902", + "https://www.moma.org/collection/works/55115", + "https://www.moma.org/collection/works/55125", + "https://www.moma.org/collection/works/55135", + "https://www.moma.org/collection/works/55145", + "https://www.moma.org/collection/works/45905", + "https://www.moma.org/collection/works/178883", + "https://www.moma.org/collection/works/178884", + "https://www.moma.org/collection/works/178885", + "https://www.moma.org/collection/works/178894", + "https://www.moma.org/collection/works/55407", + "https://www.moma.org/collection/works/45841", + "https://www.moma.org/collection/works/45861", + "https://www.moma.org/collection/works/134274", + "https://www.moma.org/collection/works/134275", + "https://www.moma.org/collection/works/124829", + "https://www.moma.org/collection/works/124946", + "https://www.moma.org/collection/works/125001", + "https://www.moma.org/collection/works/125016", + "https://www.moma.org/collection/works/45344", + "https://www.moma.org/collection/works/51010", + "https://www.moma.org/collection/works/124828", + "https://www.moma.org/collection/works/418646", + "https://www.moma.org/collection/works/126055", + "https://www.moma.org/collection/works/111515", + "https://www.moma.org/collection/works/124810", + "https://www.moma.org/collection/works/124812", + "https://www.moma.org/collection/works/124808", + "https://www.moma.org/collection/works/124839", + "https://www.moma.org/collection/works/141259", + "https://www.moma.org/collection/works/124811", + "https://www.moma.org/collection/works/55262", + "https://www.moma.org/collection/works/111456", + "https://www.moma.org/collection/works/178897", + "https://www.moma.org/collection/works/56091", + "https://www.moma.org/collection/works/56098", + "https://www.moma.org/collection/works/56109", + "https://www.moma.org/collection/works/141100", + "https://www.moma.org/collection/works/400048", + "https://www.moma.org/collection/works/418742", + "https://www.moma.org/collection/works/422726", + "https://www.moma.org/collection/works/422705", + "https://www.moma.org/collection/works/48053", + "https://www.moma.org/collection/works/141234", + "https://www.moma.org/collection/works/418741", + "https://www.moma.org/collection/works/400042", + "https://www.moma.org/collection/works/124850", + "https://www.moma.org/collection/works/124993", + "https://www.moma.org/collection/works/98125", + "https://www.moma.org/collection/works/141081", + "https://www.moma.org/collection/works/141134", + "https://www.moma.org/collection/works/405292", + "https://www.moma.org/collection/works/405325", + "https://www.moma.org/collection/works/400047", + "https://www.moma.org/collection/works/111532", + "https://www.moma.org/collection/works/141158", + "https://www.moma.org/collection/works/400043", + "https://www.moma.org/collection/works/400044", + "https://www.moma.org/collection/works/141177" +]; + +document.addEventListener('DOMContentLoaded', () => { + const gridCount = 10; + const overlay = document.getElementById('overlay'); + + // Create the clickable areas + for (let i = 0; i < gridCount * gridCount; i++) { + const area = document.createElement('div'); + area.className = 'clickable-area'; + area.style.gridColumn = (i % gridCount) + 1; + area.style.gridRow = Math.floor(i / gridCount) + 1; + + // Assign event listener to each area + if (urls[i]) { + area.addEventListener('click', () => { + window.open(urls[i], '_blank'); // Open the URL in a new tab + }); + } + + overlay.appendChild(area); + } +}); diff --git a/moma_map.css b/moma_map.css new file mode 100644 index 0000000..1f9276b --- /dev/null +++ b/moma_map.css @@ -0,0 +1,71 @@ +/* Basic reset */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Avenir Next', sans-serif; + color: #333; + background-color: #fff; +} + +#worldMap { + width: 100%; + height: 90vh; /* Adjust height to take up most of the page */ + margin-top: 20px; +} + +#mapText { + position: absolute; + top: 300px; /* Adjust this value to move the text down */ + left: 80px; + font-size: 16px; + font-weight: 300; + max-width: 300px; + line-height: 1.5; + color: #000; /* Make the text darker */ + z-index: 1000; +} + +#mapText p { + margin-bottom: 10px; /* Add margin between paragraphs */ +} + +#mapText a { + text-decoration: none; + color: #000; /* Make the link text darker */ + font-weight: 400; + border-bottom: 1px solid #333; +} + +.popup { + display: block; + position: absolute; + background: white; + border: 1px solid black; + padding: 10px; + z-index: 1000; /* Ensure it appears above other elements */ + pointer-events: auto; /* Enable interaction with popup */ +} + +.popup a { + pointer-events: auto; /* Ensure links are clickable */ +} + +.tooltip { + position: absolute; + background-color: white; + border: 1px solid black; + padding: 5px; + pointer-events: none; + z-index: 1000; +} + + + + + + + diff --git a/moma_map.html b/moma_map.html new file mode 100644 index 0000000..f5ede22 --- /dev/null +++ b/moma_map.html @@ -0,0 +1,33 @@ + + + + + + Interactive World Map + + + + + +
+
+

These locations have been identified or inferred from the 'Unidentified Photographer' category of the MoMA collection. Paris, which has many of these photographs, has its own dedicated webpage here.

+

How to Read: Hover over a dot to see the geo-coordinates of a historical photograph. Click to view the image taken at that location and a comparison with its present-day appearance. For example, coordinates 40.06939094142866, -105.61458791675068 will take you to the 'Places' image on the main page, where you can see its current look - here.

+
+ + + + + + + + + + + + + + + + + diff --git a/moma_map.js b/moma_map.js new file mode 100644 index 0000000..d28b75d --- /dev/null +++ b/moma_map.js @@ -0,0 +1,971 @@ +document.addEventListener('DOMContentLoaded', function() { + setupWorldMap(); +}); + +function setupWorldMap() { + const width = window.innerWidth; + const height = window.innerHeight * 0.9; + const svg = d3.select("#worldMap").append("svg") + .attr("width", width) + .attr("height", height); + + const projection = d3.geoNaturalEarth1() + .scale(width / 5.6) + .translate([width / 2, height / 2]); + + const pathGenerator = d3.geoPath().projection(projection); + + //data from TopoJSON + d3.json("https://unpkg.com/world-atlas@2/countries-110m.json").then(world => { + const land = topojson.feature(world, world.objects.land); + svg.append("path") + .datum(land) + .attr("d", pathGenerator) + .attr("fill", "none") + .attr("stroke", "black") + .attr("stroke-width", 0.5); // Fine black line for coastline + + addLocations(svg, projection); + }).catch(error => { + console.error('Failed to load data: ', error); + }); + + // Zoom functionality + svg.call(d3.zoom().on('zoom', (event) => { + svg.attr('transform', event.transform); + })); +} + +function addLocations(svg, projection) { + const locations = [ + // ... your locations array ... + ]; + + const tooltip = d3.select("body").append("div") + .attr("class", "tooltip") + .style("opacity", 0); + + svg.selectAll("circle") + .data(locations) + .enter().append("circle") + .attr("cx", d => projection([d.lng, d.lat])[0]) + .attr("cy", d => projection([d.lng, d.lat])[1]) + .attr("r", 3) // Default circle radius + .style("fill", () => "#" + Math.floor(Math.random()*16777215).toString(16)) // Random color + .on("mouseover", function(event, d) { + tooltip.transition() + .duration(200) + .style("opacity", .9); + tooltip.html(` +

Location: ${d.lat}, ${d.lng}

+

MoMA Collection

+

View how it looks today

+ `) + .style("left", (event.pageX + 5) + "px") + .style("top", (event.pageY - 28) + "px"); + }) + .on("mouseout", function() { + tooltip.transition() + .duration(500) + .style("opacity", 0); + }) + .on("click", (event, d) => showPopup(event, d)); +} + +function showPopup(event, d) { + removePopup(); // Remove existing popups first + const x = event.pageX + 10; // Offset to avoid cursor + const y = event.pageY + 10; + + d3.select("body").append("div") + .attr("class", "popup") + .style("left", `${x}px`) + .style("top", `${y}px`) + .style("position", "absolute") + .style("background", "white") + .style("border", "1px solid black") + .style("padding", "10px") + .html(` +

MoMA Collection

+

View how it looks today

+ `); + + // Adding a click event on the document to close the popup when clicking elsewhere + d3.select(document).on("click.popup", function() { + if (!d3.select(d3.event.target).classed("popup") && !d3.select(d3.event.target).node().parentNode.classList.contains("popup")) { + removePopup(); + d3.select(document).on("click.popup", null); // Remove this event listener + } + }); +} + +function removePopup() { + d3.select(".popup").remove(); +} + +function addLocations(svg, projection) { + const locations = [ + { + lat: 41.88895085837717, + lng: 12.481324221898328, + momaUrl: "https://www.moma.org/collection/works/57850", + googleMapsUrl: "https://www.google.com/maps/place/Temple+of+Hercules+Victor/@41.8870852,12.4829786,248a,35y,303.43h,44.92t/data=!3m1!1e3" + }, + { + lat: 41.88895085837717, + lng: 12.481324221898328, + momaUrl: "https://www.moma.org/collection/works/57850", + googleMapsUrl: "https://www.google.com/maps/place/Temple+of+Hercules+Victor/@41.8870852,12.4829786,248a,35y,303.43h,44.92t/data=!3m1!1e3!4m6!3m5!1s0x132f604a7f37e1c7:0x7a6122833563fa10!8m2!3d41.8887637!4d12.4807554!16zL20vMDc1Y2g1" + }, + { + lat: 31.198806566219808, + lng: 29.893327795093718, + momaUrl: "https://www.moma.org/collection/works/54811", + googleMapsUrl: "https://www.google.com/maps/place/31°11'55.7%22N+29°53'36.0%22E/@31.1988066,29.8933278,770m/data=!3m1!1e3!4m4!3m3!8m2!3d31.1988066!4d29.8933278" + }, + { + lat: 31.182045343445335, + lng: 29.89673912986325, + momaUrl: "https://www.moma.org/collection/works/54825", + googleMapsUrl: "https://www.google.com/maps/place/31°10'55.4%22N+29°53'48.3%22E/@31.1820453,29.8967391,17z/data=!3m1!4b1!4m4!3m3!8m2!3d31.1820453!4d29.8967391" + }, + { + lat: 21.691890224523586, + lng: 31.29070935713978, + momaUrl: "https://www.moma.org/collection/works/54838", + googleMapsUrl: "https://www.google.com/maps/search/nubia+sudan+waterwheel/@21.5712284,30.819198,141168m/data=!3m1!1e3" + }, + { + lat: 55.95497461552964, + lng: -3.182991460036102, + momaUrl: "https://www.moma.org/collection/works/57847", + googleMapsUrl: "https://www.google.com/maps/place/Dugald+Stewart+Monument/@55.9549604,-3.1822482,150a,35y,236.63h,45t/data=!3m1!1e3!4m6!3m5!1s0x4887c789365f252d:0xdaa07654a220018b!8m2!3d55.9544941!4d-3.1844506!16zL20vMGRmazU1" + }, + { + lat: 9.919282988437628, + lng: 78.11907984007348, + momaUrl: "https://www.moma.org/collection/works/45554", + googleMapsUrl: "https://www.google.com/maps/place/Meenakshi+Amman+Temple/@9.9187115,78.1193724,884m/data=!3m1!1e3!4m6!3m5!1s0x3b00c58461e46987:0xf134621ce5286703!8m2!3d9.9195045!4d78.1193418!16s%2Fm%2F026g1j2" + }, + { + lat: 59.3254763832158, + lng: 18.06362626171251, + momaUrl: "https://www.moma.org/collection/works/47393", + googleMapsUrl: "https://www.google.com/maps/place/59°19'31.7%22N+18°03'49.1%22E/@59.3253401,18.0635428,17z/data=!4m11!1m6!3m5!2zNTnCsDE5JzMxLjciTiAxOMKwMDMnNDkuMSJF!8m2!3d59.3254764!4d18.0636263!10e5!3m3!8m2!3d59.3254764!4d18.0636263" + }, + { + lat: 37.96910606962951, + lng: 23.732497925215448, + momaUrl: "https://www.moma.org/collection/works/51338", + googleMapsUrl: "https://www.google.com/maps/place/Temple+of+Olympian+Zeus/@37.969225,23.7318058,709m/data=!3m1!1e3!4m12!1m5!3m4!2zMzfCsDU4JzA4LjgiTiAyM8KwNDMnNTcuMCJF!8m2!3d37.9691061!4d23.7324979!3m5!1s0x14a1bd169b9c6429:0x5519bb221fe94255!8m2!3d37.9693!4d23.7331!16zL20vMDVrZzg" + }, + { + lat: -11.889632308878712, + lng: -76.48823229136183, + momaUrl: "https://www.moma.org/collection/works/44835", + googleMapsUrl: "https://www.google.com/maps/place/Puente+Carrión/@-11.8887177,-76.4870768,856a,35y,167.07h/data=!3m1!1e3!4m6!3m5!1s0x9105f95e281281c9:0xd98db740f2364950!8m2!3d-11.8895298!4d-76.4882672!16s%2Fg%2F11r9q30t1t" + }, + { + lat: 39.36623628451196, + lng: -74.42600927065651, + momaUrl: "https://www.moma.org/collection/works/298545", + googleMapsUrl: "https://www.google.com/maps/place/39°21'58.5%22N+74°25'33.6%22W/@39.3673069,-74.4264422,127a,35y,162.72h,45t/data=!3m1!1e3!4m4!3m3!8m2!3d39.3662363!4d-74.4260093" + }, + { + lat: 44.89468359083679, + lng: -110.38462385311021, + momaUrl: "https://www.moma.org/collection/works/400217", + googleMapsUrl: "https://www.google.com/maps/search/Grand+Canyon+of+Yellowstone+river/@44.8990204,-110.4304563,10088m/data=!3m1!1e3" + }, + { + lat: 41.881993141632584, + lng: -87.63185607551002, + momaUrl: "https://www.moma.org/collection/works/400219", + googleMapsUrl: "https://www.google.com/maps/place/41°52'55.2%22N+87°37'54.7%22W/@41.8819931,-87.6318561,17z/data=!3m1!4b1!4m4!3m3!8m2!3d41.8819931!4d-87.6318561" + }, + { + lat: 41.97508424835115, + lng: -87.72942073429664, + momaUrl: "https://www.moma.org/collection/works/400220", + googleMapsUrl: "https://www.google.com/maps/place/North+Park,+Chicago,+IL/@41.9762394,-87.7363084,264m/data=!3m1!1e3!4m6!3m5!1s0x880fce7068f6c281:0x6ffce8a274ec7076!8m2!3d41.9828479!4d-87.7284429!16s%2Fg%2F1q67rgj74" + }, + { + lat: 44.343361322029196, + lng: -110.06876422845869, + momaUrl: "https://www.moma.org/collection/works/400222", + googleMapsUrl: "https://www.google.com/maps/place/Mount+Schutz/@44.338568,-110.0669723,14.98z/data=!4m13!1m6!3m5!2zNDTCsDIwJzM2LjEiTiAxMTDCsDA0JzA3LjYiVw!8m2!3d44.3433613!4d-110.0687642!10e5!3m5!1s0x534de36146be514d:0x5437330e65c181a8!8m2!3d44.3419444!4d-110.0716666!16s%2Fg%2F1thl0j3w" + }, + { + lat: 44.934813351734576, + lng: -110.72291089209295, + momaUrl: "https://www.moma.org/collection/works/400223", + googleMapsUrl: "https://www.google.com/maps/@44.9353152,-110.7231102,3a,60y,243.02h,90t/data=!3m6!1e1!3m4!1s0GR7uqvfY-nA9boewjTVVQ!2e0!7i13312!8i6656" + }, + { + lat: 41.11575601615458, + lng: -112.51874668980129, + momaUrl: "https://www.moma.org/collection/works/400227", + googleMapsUrl: "https://www.google.com/maps/@41.1788447,-112.596999,49020m/data=!3m1!1e3" + }, + { + lat: 40.77109741138491, + lng: -111.89071296083303, + momaUrl: "https://www.moma.org/collection/works/400228", + googleMapsUrl: "https://www.google.com/maps/place/Salt+Lake+Utah+Temple/@40.7709786,-111.8922027,236m/data=!3m1!1e3!4m12!1m5!3m4!2zNDDCsDQ2JzE2LjAiTiAxMTHCsDUzJzI2LjYiVw!8m2!3d40.7710974!4d-111.890713!3m5!1s0x8752f508e4890ee9:0x7f871e221aa7395d!8m2!3d40.7705774!4d-111.8919146!16zL20vMDM0em40" + }, + { + lat: 39.742927231147746, + lng: -105.51477750005218, + momaUrl: "https://www.moma.org/collection/works/400229", + googleMapsUrl: "https://www.google.com/maps/@39.7404578,-105.516203,3a,75y,179.41h,90t/data=!3m8!1e1!3m6!1sAF1QipPoK8zEzK0ZyWopVc0rJDncjTlCKYh3cQI1ZmMi!2e10!3e11!6shttps:%2F%2Flh5.googleusercontent.com%2Fp%2FAF1QipPoK8zEzK0ZyWopVc0rJDncjTlCKYh3cQI1ZmMi%3Dw203-h100-k-no-pi-0-ya353.5434-ro0-fo100!7i7680!8i3840" + }, + { + lat: 52.708001652364054, + lng: -2.7527973503280423, + momaUrl: "https://www.moma.org/collection/works/124769", + googleMapsUrl: "https://www.google.com/maps/place/52°42'28.8%22N+2°45'10.1%22W/@52.7083366,-2.752541,18.3z/data=!4m11!1m6!3m5!2zNTLCsDQyJzI4LjgiTiAywrA0NScxMC4xIlc!8m2!3d52.7080017!4d-2.7527974!10e5!3m3!8m2!3d52.7080017!4d-2.7527974" + }, + { + lat: 40.419910532397395, + lng: 15.006473286711138, + momaUrl: "https://www.moma.org/collection/works/125021", + googleMapsUrl: "https://www.google.com/maps/place/40°25'11.7%22N+15°00'23.3%22E/@40.4199105,15.0064733,17z/data=!3m1!4b1!4m4!3m3!8m2!3d40.4199105!4d15.0064733" + }, + { + lat: 40.85214308710397, + lng: 14.260868487734557, + momaUrl: "https://www.moma.org/collection/works/46310", + googleMapsUrl: "https://www.google.com/maps/place/40°51'07.7%22N+14°15'39.1%22E/@40.8521389,14.2582862,680m/data=!3m2!1e3!4b1!4m4!3m3!8m2!3d40.8521389!4d14.2608611" + }, + { + lat: 41.82480949613774, + lng: -71.40918394770594, + momaUrl: "https://www.moma.org/collection/works/124760", + googleMapsUrl: "https://www.google.com/maps/place/The+Arcade+Providence/@41.8241699,-71.410686,15z/data=!3m1!5s0x89e44514222cf7a3:0xef84708a8e9f1508!4m14!1m7!3m6!1s0x89e445142198f60f:0xac3f2b5e6651f5ea!2sThe+Arcade+Providence!8m2!3d41.8241699!4d-71.410686!16zL20vMGcxc3Rr!3m5!1s0x89e445142198f60f:0xac3f2b5e6651f5ea!8m2!3d41.8241699!4d-71.410686!16zL20vMGcxc3Rr" + }, + { + lat: 40.06939094142866, + lng: -105.61458791675068, + momaUrl: "https://www.moma.org/collection/works/124999", + googleMapsUrl: "https://www.google.com/maps/@40.06902,-105.6162267,3a,75y,241.46h,95.98t/data=!3m8!1e1!3m6!1sAF1QipMKsBX7Ns1WWLRjt6pHg3aV0j_647ZoFUxF88oL!2e10!3e11!6shttps:%2F%2Flh5.googleusercontent.com%2Fp%2FAF1QipMKsBX7Ns1WWLRjt6pHg3aV0j_647ZoFUxF88oL%3Dw203-h100-k-no-pi-0-ya84.39318-ro-0-fo100!7i11988!8i5994" + }, + { + lat: 49.440354213924934, + lng: 1.0949767938473727, + momaUrl: "https://www.moma.org/collection/works/54890", + googleMapsUrl: "https://www.google.com/maps/@49.4406398,1.0938199,3a,75y,130.44h,117.59t/data=!3m6!1e1!3m4!1s5ta9xySb4gyRJcFpuYpkTA!2e0!7i13312!8i6656" + }, + { + lat: 54.93857445344881, + lng: 43.34853430229154, + momaUrl: "https://www.moma.org/collection/works/86468", + googleMapsUrl: "https://www.google.com/maps/place/54°56'18.9%22N+43°20'54.7%22E/@54.9385745,43.3485343,517m/data=!3m1!1e3!4m4!3m3!8m2!3d54.9385745!4d43.3485343" + }, + { + lat: 52.18919947342216, + lng: -2.2198910997366075, + momaUrl: "https://www.moma.org/collection/works/124766", + googleMapsUrl: "https://www.google.com/maps/place/52°11'21.1%22N+2°13'11.6%22W/@52.1896571,-2.2182031,127a,35y,243.22h,45t/data=!3m1!1e3!4m4!3m3!8m2!3d52.1891995!4d-2.2198911" + }, + { + lat: 52.189080738926876, + lng: -2.2236043845740294, + momaUrl: "https://www.moma.org/collection/works/124767", + googleMapsUrl: "https://www.google.com/maps/place/52°11'20.7%22N+2°13'25.0%22W/@52.1890807,-2.2236044,551m/data=!3m1!1e3!4m4!3m3!8m2!3d52.1890807!4d-2.2236044" + }, + { + lat: 51.752523467511224, + lng: -1.2538621682740625, + momaUrl: "https://www.moma.org/collection/works/124854", + googleMapsUrl: "https://www.google.com/maps/place/51°45'09.1%22N+1°15'13.9%22W/@51.7517219,-1.2525434,127a,35y,314.85h,45t/data=!3m1!1e3!4m5!3m4!4b1!8m2!3d51.7525235!4d-1.2538622" + }, + { + lat: 44.40766673643361, + lng: 8.933525531317672, + momaUrl: "https://www.moma.org/collection/works/125028", + googleMapsUrl: "https://www.google.com/maps/place/Doge's+Palace/@44.4075246,8.9328796,126m/data=!3m1!1e3!4m12!1m5!3m4!2zNDTCsDI0JzI3LjYiTiA4wrA1NicwMC43IkU!8m2!3d44.4076667!4d8.9335255!3m5!1s0x12d343dd7fd645db:0xaa22692f44c315c1!8m2!3d44.4075158!4d8.9332508!16s%2Fm%2F04zxf64" + }, + { + lat: 45.25329556468555, + lng: 9.128590945770801, + momaUrl: "https://www.moma.org/collection/works/125029", + googleMapsUrl: "https://www.google.com/maps/@45.2563896,9.148056,3a,75y,249.37h,96.18t/data=!3m8!1e1!3m6!1sAF1QipPPjQ_vdxgTmf5YUF40t7p2dYCrr4AK-jp7kjk3!2e10!3e11!6shttps:%2F%2Flh5.googleusercontent.com%2Fp%2FAF1QipPPjQ_vdxgTmf5YUF40t7p2dYCrr4AK-jp7kjk3%3Dw203-h100-k-no-pi-0-ya99.985054-ro-0-fo100!7i5472!8i2736" + }, + { + lat: 9.349767551055923, + lng: -79.90467595493874, + momaUrl: "https://www.moma.org/collection/works/181830", + googleMapsUrl: "https://www.google.com/maps/place/9°20'59.2%22N+79°54'16.8%22W/@9.349003,-79.9084133,1822m/data=!3m1!1e3!4m4!3m3!8m2!3d9.3497778!4d-79.9046667" + }, + { + lat: 40.756044066853505, + lng: -73.98699718541272, + momaUrl: "https://www.moma.org/collection/works/51802", + googleMapsUrl: "https://www.google.com/maps/place/40°45'21.8%22N+73°59'13.2%22W/@40.7560441,-73.9869972,682m/data=!3m1!1e3!4m4!3m3!8m2!3d40.7560441!4d-73.9869972" + }, + { + lat: 43.76794909691097, + lng: 11.254968974917196, + momaUrl: "https://www.moma.org/collection/works/124997", + googleMapsUrl: "https://www.google.com/maps/place/43°46'04.6%22N+11°15'17.9%22E/@43.7667727,11.2572471,267a,35y,286.59h,44.92t/data=!3m1!1e3!4m4!3m3!8m2!3d43.7679491!4d11.254969" + }, + { + lat: 47.050851404321755, + lng: 8.308238835504977, + momaUrl: "https://www.moma.org/collection/works/125022", + googleMapsUrl: "https://www.google.com/maps/place/47°03'03.1%22N+8°18'29.7%22E/@47.0508514,8.3082388,610m/data=!3m1!1e3!4m4!3m3!8m2!3d47.0508514!4d8.3082388" + }, + { + lat: 8.960683777875238, + lng: -79.55506571103703, + momaUrl: "https://www.moma.org/collection/works/83524", + googleMapsUrl: "https://www.google.com/maps/place/Edificio+de+La+Administración+del+Canal+de+Panamá/@8.9595434,-79.5555727,886m/data=!3m1!1e3!4m6!3m5!1s0x8faca8a935e8e6d5:0x496c7d0f698bd9e6!8m2!3d8.9594695!4d-79.5550504!16s%2Fg%2F11r92jrhl" + }, + { + lat: 9.09409842228529, + lng: -79.68147636807662, + momaUrl: "https://www.moma.org/collection/works/82872", + googleMapsUrl: "https://www.google.com/maps/place/Culebra+Cut/@9.0870667,-79.6835177,906a,35y,39.2t/data=!3m1!1e3!4m12!1m5!3m4!2zOcKwMDUnMzguOCJOIDc5wrA0MCc1My4zIlc!8m2!3d9.0940984!4d-79.6814764!3m5!1s0x8fab5ee4b1f714d9:0x70059d6d44f30f85!8m2!3d9.0939289!4d-79.681927!16zL20vMDZ6d3Z4" + }, + { + lat: 40.704537627962694, + lng: -73.99489060494403, + momaUrl: "https://www.moma.org/collection/works/58810", + googleMapsUrl: "https://www.google.com/maps/place/40°42'16.3%22N+73°59'41.6%22W/@40.6982215,-73.9964633,836a,35y,39.22t/data=!3m1!1e3!4m4!3m3!8m2!3d40.7045376!4d-73.9948906" + }, + { + lat: 32.84551539723446, + lng: -96.84855407038768, + momaUrl: "https://www.moma.org/collection/works/55783", + googleMapsUrl: "https://www.google.com/maps/place/32°50'43.9%22N+96°50'54.8%22W/@32.818614,-96.8562586,3733a,35y,38.69t/data=!3m1!1e3!4m4!3m3!8m2!3d32.8455154!4d-96.8485541" + }, + { + lat: 29.87602491442088, + lng: 31.221909341941064, + momaUrl: "https://www.moma.org/collection/works/125040", + googleMapsUrl: "https://www.google.com/maps/place/29°52'33.7%22N+31°13'18.9%22E/@29.8611163,31.217897,1929a,35y,38.97t/data=!3m1!1e3!4m4!3m3!8m2!3d29.8760249!4d31.2219093" + }, + { + lat: 40.68957479982746, + lng: -74.0430841865869, + momaUrl: "https://www.moma.org/collection/works/98136", + googleMapsUrl: "https://www.google.com/maps/place/40°41'22.5%22N+74°02'35.1%22W/@40.6828064,-74.0454878,834a,35y,39.22t/data=!3m1!1e3!4m4!3m3!8m2!3d40.6895748!4d-74.0430842" + }, + + + + + + { + lat: 51.35077685989592, + lng: -0.11674142495791595, + momaUrl: "https://www.moma.org/collection/works/46430", + googleMapsUrl: "https://www.google.com/maps/@51.3532957,-0.1088572,495a,35y,297.49h,44.82t/data=!3m5!1e1!3m3!1skmVuYQ8kX54rJb4nNYdSbw!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fpanoid%3DkmVuYQ8kX54rJb4nNYdSbw%26cb_client%3Dmaps_sv.tactile.gps%26w%3D203%26h%3D100%26yaw%3D13.376058%26pitch%3D0%26thumbfov%3D100" + }, + + + { + lat: 49.48695530315101, + lng: 0.10751205459331625, + momaUrl: "https://www.moma.org/collection/works/405094", + googleMapsUrl: "https://www.google.com/maps/place/49°29'13.0%22N+0°06'27.0%22E/@49.4871577,0.1056542,127a,35y,89.97h,45t/data=!3m1!1e3!4m4!3m3!8m2!3d49.4869553!4d0.1075121" + }, + + + + + + { + lat: 57.05108765324497, + lng: -92.59528046938004, + momaUrl: "https://www.moma.org/collection/works/124982", + googleMapsUrl: "https://www.google.com/maps/place/57°03'03.9%22N+92°35'43.0%22W/@57.0193041,-92.61905,4852a,35y,38.48t/data=!3m1!1e3!4m4!3m3!8m2!3d57.0510877!4d-92.5952805" + }, + + + + + + { + lat: 45.10832271097335, + lng: 3.8414381998774823, + momaUrl: "https://www.moma.org/collection/works/405431", + googleMapsUrl: "https://www.google.com/maps/place/45°06'30.0%22N+3°50'29.2%22E/@45.1078739,3.8447553,260a,35y,279.94h,45t/data=!3m1!1e3!4m4!3m3!8m2!3d45.1083227!4d3.8414382" + }, + + + + + + { + lat: 51.83052602778765, + lng: 12.241811186312464, + momaUrl: "https://www.moma.org/collection/works/83847", + googleMapsUrl: "https://www.google.com/maps/place/51°49'49.9%22N+12°14'30.5%22E/@51.8254998,12.2417997,686a,35y,39.2t/data=!3m1!1e3!4m4!3m3!8m2!3d51.830526!4d12.2418112" + }, + + + + + + { + lat: 43.70264245422624, + lng: -72.28921992853401, + momaUrl: "https://www.moma.org/collection/works/174548", + googleMapsUrl: "https://www.google.com/maps/place/43°42'09.5%22N+72°17'21.2%22W/@43.7000619,-72.2900561,394a,35y,39.31t/data=!3m1!1e3!4m4!3m3!8m2!3d43.7026425!4d-72.2892199" + }, + + + + + + { + lat: 42.391219697522374, + lng: -71.10139759072389, + momaUrl: "https://www.moma.org/collection/works/174549", + googleMapsUrl: "https://www.google.com/maps/place/42°23'28.4%22N+71°06'05.0%22W/@42.3897324,-71.1020385,200a,35y,39.48t/data=!3m1!1e3!4m4!3m3!8m2!3d42.3912222!4d-71.1013889" + }, + + + + + + { + lat: 42.341388276915104, + lng: -71.09202121574259, + momaUrl: "https://www.moma.org/collection/works/174550", + googleMapsUrl: "https://www.google.com/maps/place/140+Fenway,+Boston,+MA+02115/@42.3435285,-71.0925955,238a,35y,163.21h,44.92t/data=!3m1!1e3!4m12!1m5!3m4!2zNDLCsDIwJzI5LjAiTiA3McKwMDUnMzEuMyJX!8m2!3d42.3413889!4d-71.0920278!3m5!1s0x89e37a1f31f9f6df:0xfcff76492ba21389!8m2!3d42.3407907!4d-71.0917633!16s%2Fg%2F1tdbgfr9" + }, + + + + { + lat: 42.35888180748135, + lng: -71.05782293199077, + momaUrl: "https://www.moma.org/collection/works/174551", + googleMapsUrl: "https://www.google.com/maps/place/42°21'32.0%22N+71°03'28.2%22W/@42.3562669,-71.058085,311a,35y,39.42t/data=!3m1!1e3!4m4!3m3!8m2!3d42.3588818!4d-71.0578229" + }, + + + + + + { + lat: 42.35747062497912, + lng: -71.05831644527095, + momaUrl: "https://www.moma.org/collection/works/174552", + googleMapsUrl: "https://www.google.com/maps/place/42°21'26.9%22N+71°03'29.9%22W/@42.3546263,-71.0593165,402a,35y,39.36t/data=!3m1!1e3!4m4!3m3!8m2!3d42.3574706!4d-71.0583164" + }, + + + + + + { + lat: 42.35782577698874, + lng: -71.06346682201249, + momaUrl: "https://www.moma.org/collection/works/174553", + googleMapsUrl: "https://www.google.com/maps/place/42°21'28.2%22N+71°03'48.5%22W/@42.3565575,-71.0640233,184a,35y,39.45t/data=!3m1!1e3!4m4!3m3!8m2!3d42.3578333!4d-71.0634722" + }, + + + + + + { + lat: 42.357416260733935, + lng: -71.07187729754105, + momaUrl: "https://www.moma.org/collection/works/174554", + googleMapsUrl: "https://www.google.com/maps/place/42°21'26.7%22N+71°04'18.8%22W/@42.3553242,-71.0730187,251a,35y,11.84h,44.92t/data=!3m1!1e3!4m4!3m3!8m2!3d42.3574163!4d-71.0718773" + }, + + + + + + { + lat: 42.35359679124663, + lng: -71.06941856170256, + momaUrl: "https://www.moma.org/collection/works/174555", + googleMapsUrl: "https://www.google.com/maps/place/42°21'22.3%22N+71°03'56.3%22W/@42.3512891,-71.0699389,412a,35y,39.36t/data=!3m1!1e3!4m4!3m3!8m2!3d42.3561882!4d-71.0656417" + }, + + + + + + { + lat: 42.355491084604395, + lng: -71.07017374169916, + momaUrl: "https://www.moma.org/collection/works/174556", + googleMapsUrl: "https://www.google.com/maps/place/42°21'19.8%22N+71°04'12.6%22W/@42.3495684,-71.0710275,815a,35y,39.23t/data=!3m1!1e3!4m4!3m3!8m2!3d42.3554911!4d-71.0701737" + }, + + + + + + { + lat: 42.352641143643936, + lng: -71.06977510867817, + momaUrl: "https://www.moma.org/collection/works/174557", + googleMapsUrl: "https://www.google.com/maps/place/42°21'09.5%22N+71°04'11.2%22W/@42.3466456,-71.0697751,815a,35y,39.23t/data=!3m1!1e3!4m4!3m3!8m2!3d42.3526411!4d-71.0697751" + }, + + + + + + { + lat: 42.358233465417065, + lng: -71.05687874605744, + momaUrl: "https://www.moma.org/collection/works/174558", + googleMapsUrl: "https://www.google.com/maps/place/42°21'29.6%22N+71°03'24.8%22W/@42.3522372,-71.0568787,816a,35y,39.23t/data=!3m1!1e3!4m4!3m3!8m2!3d42.3582335!4d-71.0568787" + }, + + + + + + { + lat: 42.367373802453535, + lng: -71.05554694657887, + momaUrl: "https://www.moma.org/collection/works/174559", + googleMapsUrl: "https://www.google.com/maps/place/Copps+Hill+Burying+Ground/@42.3619782,-71.056937,818a,35y,39.23t/data=!3m1!1e3!4m12!1m5!3m4!2zNDLCsDIyJzAzLjgiTiA3McKwMDMnMTcuNyJX!8m2!3d42.3677174!4d-71.0549073!3m5!1s0x89e3708c0acb2b17:0xb4a9fcb9bfa4879d!8m2!3d42.3673053!4d-71.0558515!16s%2Fm%2F04658qy" + }, + + + + { + lat: 40.83978700963584, + lng: -73.93056459708299, + momaUrl: "https://www.moma.org/collection/works/174560", + googleMapsUrl: "https://www.google.com/maps/place/40°50'32.3%22N+73°55'45.7%22W/@40.8342445,-73.9329109,832a,35y,39.22t/data=!3m1!1e3!4m4!3m3!8m2!3d40.8423108!4d-73.9293472" + }, + + + + + + { + lat: 40.85582136678708, + lng: -73.92586839261148, + momaUrl: "https://www.moma.org/collection/works/174561", + googleMapsUrl: "https://www.google.com/maps/place/40°51'21.0%22N+73°55'33.1%22W/@40.8530342,-73.9153918,903a,35y,270h,39.21t/data=!3m1!1e3!4m4!3m3!8m2!3d40.8558214!4d-73.9258684" + }, + + + + + + { + lat: 40.7412666079906, + lng: -73.98755111953741, + momaUrl: "https://www.moma.org/collection/works/174562", + googleMapsUrl: "https://www.google.com/maps/place/40°44'28.6%22N+73°59'15.2%22W/@40.7478254,-73.9875873,837a,35y,180h,39.22t/data=!3m1!1e3!4m4!3m3!8m2!3d40.7412666!4d-73.9875511" + }, + + + + + + { + lat: 43.06999711439963, + lng: 12.614293773664077, + momaUrl: "https://www.moma.org/collection/works/98187", + googleMapsUrl: "https://www.google.com/maps/place/43°04'12.0%22N+12°36'51.5%22E/@43.0665694,12.6131165,431a,35y,39.24t/data=!3m1!1e3!4m4!3m3!8m2!3d43.0699971!4d12.6142938" + }, + { + lat: 40.75214096588844, + lng: -73.9755449157015, + momaUrl: "https://www.moma.org/collection/works/83784", + googleMapsUrl: "https://www.google.com/maps/place/40°45'07.7%22N+73°58'32.0%22W/@40.7459879,-73.9755449,838a,35y,39.22t/data=!3m1!1e3!4m4!3m3!8m2!3d40.752141!4d-73.9755449" + }, + { + lat: 48.572300370649316, + lng: -4.323490337207763, + momaUrl: "https://www.moma.org/collection/works/405357", + googleMapsUrl: "https://www.google.com/maps/place/48°34'20.3%22N+4°19'24.6%22W/@48.572781,-4.3277144,265a,35y,93.26h,44.99t/data=!3m1!1e3!4m4!3m3!8m2!3d48.5723004!4d-4.3234903" + }, + { + lat: 40.779566038419276, + lng: -73.92432378733687, + momaUrl: "https://www.moma.org/collection/works/45898", + googleMapsUrl: "https://www.google.com/maps/place/40°46'46.4%22N+73°55'27.6%22W/@40.7801639,-73.9354708,509a,35y,90h,44.79t/data=!3m1!1e3!4m4!3m3!8m2!3d40.779566!4d-73.9243238" + }, + { + lat: 49.97398458936697, + lng: 8.605080485173037, + momaUrl: "https://www.moma.org/collection/works/217510", + googleMapsUrl: "https://www.google.com/maps/place/49°58'26.3%22N+8°36'18.3%22E/@49.9688397,8.6026995,714a,35y,39.24t/data=!3m1!1e3!4m4!3m3!8m2!3d49.9739846!4d8.6050805" + }, + { + lat: 40.76627632625654, + lng: -73.97765608226179, + momaUrl: "https://www.moma.org/collection/works/141033", + googleMapsUrl: "https://www.google.com/maps/place/40°45'58.6%22N+73°58'39.6%22W/@40.7662763,-73.9695459,837a,35y,270h,39.22t/data=!3m1!1e3!4m4!3m3!8m2!3d40.7662763!4d-73.9776561" + }, + { + lat: 40.723812561290806, + lng: -74.00036569633788, + momaUrl: "https://www.moma.org/collection/works/98642", + googleMapsUrl: "https://www.google.com/maps/place/40°43'25.7%22N+74°00'01.3%22W/@40.7176788,-74.0010598,838a,35y,39.22t/data=!3m1!1e3!4m4!3m3!8m2!3d40.7238126!4d-74.0003657" + }, + { + lat: 40.59535129579829, + lng: -73.50042311622309, + momaUrl: "https://www.moma.org/collection/works/400106", + googleMapsUrl: "https://www.google.com/maps/place/40°35'43.3%22N+73°30'01.5%22W/@40.582746,-73.501651,1676a,35y,39.03t/data=!3m1!1e3!4m4!3m3!8m2!3d40.5953513!4d-73.5004231" + }, + { + lat: 44.97168037578974, + lng: -110.71378507972594, + momaUrl: "https://www.moma.org/collection/works/400224", + googleMapsUrl: "https://www.google.com/maps/place/44°58'18.1%22N+110°42'49.6%22W/@44.9605421,-110.7188262,1495a,35y,38.75t/data=!3m1!1e3!4m4!3m3!8m2!3d44.9716804!4d-110.7137851" + }, + { + lat: 44.649577907176585, + lng: -110.78601510866288, + momaUrl: "https://www.moma.org/collection/works/400225", + googleMapsUrl: "https://www.google.com/maps/place/44°38'58.5%22N+110°47'09.7%22W/@44.6274392,-110.7934536,3057a,35y,38.56t/data=!3m1!1e3!4m4!3m3!8m2!3d44.6495779!4d-110.7860151" + }, + { + lat: 29.215461934602775, + lng: -82.05354861524819, + momaUrl: "https://www.moma.org/collection/works/418748", + googleMapsUrl: "https://www.google.com/maps/place/29°12'55.7%22N+82°03'12.8%22W/@29.2137026,-82.0537043,241a,35y,39.43t/data=!3m1!1e3!4m4!3m3!8m2!3d29.2154619!4d-82.0535486" + }, + { + lat: 49.44174137210123, + lng: 1.0966995723888247, + momaUrl: "https://www.moma.org/collection/works/405086", + googleMapsUrl: "https://www.google.com/maps/place/49°26'30.3%22N+1°05'48.1%22E/@49.4366923,1.0954054,715a,35y,39.26t/data=!3m1!1e3!4m4!3m3!8m2!3d49.4417414!4d1.0966996" + }, + { + lat: 46.90103281665305, + lng: 3.8351877084962207, + momaUrl: "https://www.moma.org/collection/works/405414", + googleMapsUrl: "https://www.google.com/maps/place/46°54'03.7%22N+3°50'06.7%22E/@46.8902563,3.8327353,1475a,35y,39.03t/data=!3m1!1e3!4m4!3m3!8m2!3d46.9010328!4d3.8351877" + }, + { + lat: 47.657617234479844, + lng: -2.758276961446285, + momaUrl: "https://www.moma.org/collection/works/405157", + googleMapsUrl: "https://www.google.com/maps/place/47°39'27.4%22N+2°45'29.8%22W/@47.6566933,-2.7576207,125a,35y,325.25h,45t/data=!3m1!1e3!4m4!3m3!8m2!3d47.6576172!4d-2.758277" + }, + { + lat: 49.36469695723288, + lng: 0.08258373642310539, + momaUrl: "https://www.moma.org/collection/works/405043", + googleMapsUrl: "https://www.google.com/maps/@49.3637086,0.0838218,3a,60y,90t/data=!3m6!1e1!3m4!1sYeg0yPsdmjL_jejqoyZZSQ!2e0!7i16384!8i8192" + }, + { + lat: 45.54788390866503, + lng: 2.309686798272528, + momaUrl: "https://www.moma.org/collection/works/405267", + googleMapsUrl: "https://www.google.com/maps/@45.5477599,2.3120016,203a,35y,270h,39.27t/data=!3m1!1e3" + }, + { + lat: 49.04504503276133, + lng: 3.9574017293482346, + momaUrl: "https://www.moma.org/collection/works/405038", + googleMapsUrl: "https://www.google.com/maps/place/Mai+des+Lys/@49.0450217,3.9564163,3a,75y,262.09h,87t/data=!3m6!1e1!3m4!1s-Zxe1TrLizO0GlLJnzNsKw!2e0!7i16384!8i8192!4m9!1m2!2m1!1schinese+food+near+Épernay,+France!3m5!1s0x47e96b51c5435caf:0x39e08f8465eeb17d!8m2!3d49.0450533!4d3.9557262!16s%2Fg%2F1tdq5b83" + }, + { + lat: 50.406344422090456, + lng: 1.5641359117590492, + momaUrl: "https://www.moma.org/collection/works/405041", + googleMapsUrl: "https://www.google.com/maps/place/La+Renommée/@50.4062627,1.5680839,231a,35y,279.99h,45t/data=!3m1!1e3!4m6!3m5!1s0x47dddc1c6d850fcb:0x153edfb850290beb!8m2!3d50.406314!4d1.5641438!16s%2Fg%2F1tvgtmbv" + }, + { + lat: 48.30358626222227, + lng: 0.18175029926383882, + momaUrl: "https://www.moma.org/collection/works/405374", + googleMapsUrl: "https://www.google.com/maps/place/7+Rue+Principale,+72610+Grandchamp,+France/@48.3013368,0.181515,245a,35y,3.98h,45t/data=!3m1!1e3!4m15!1m8!3m7!1s0x47e26e0fb55e2a9f:0x40d37521e0ac8a0!2s72610+Grandchamp,+France!3b1!8m2!3d48.301982!4d0.182782!16s%2Fm%2F03qk2fm!3m5!1s0x47e26e16cdefa507:0x7600887e135b2b3a!8m2!3d48.3036837!4d0.181673!16s%2Fg%2F11v03v4chr" + }, + { + lat: 45.76754461999532, + lng: 4.830005590971094, + momaUrl: "https://www.moma.org/collection/works/405034", + googleMapsUrl: "https://www.google.com/maps/@45.7672191,4.8295231,3a,75y,28.1h,95.55t/data=!3m6!1e1!3m4!1shc7e-oC1Qj8KEjMwoX4A1A!2e0!7i16384!8i8192" + }, + { + lat: 46.72281483527499, + lng: 2.506303672441867, + momaUrl: "https://www.moma.org/collection/works/405152", + googleMapsUrl: "https://www.google.com/maps/place/Ad-Thermie/@46.7232229,2.5097407,254a,35y,257.99h,45t/data=!3m1!1e3!4m6!3m5!1s0x47fa7c75cb1d02f7:0xbba8bae6b39f5940!8m2!3d46.7227884!4d2.5061934!16s%2Fg%2F11c603hdpc" + }, + { + lat: 48.8797074625925, + lng: 2.3271057936244475, + momaUrl: "https://www.moma.org/collection/works/405159", + googleMapsUrl: "https://www.google.com/maps/place/Crédit+Agricole+de+Paris+Amsterdam/@48.8787793,2.3265988,122a,35y,45t/data=!3m1!1e3!4m6!3m5!1s0x47e66e493d0c4c0b:0x8b62d8f3159010c!8m2!3d48.8797458!4d2.3272029!16s%2Fg%2F1tj20vq8" + }, + { + lat: 46.820916268168624, + lng: 3.031174284884848, + momaUrl: "https://www.moma.org/collection/works/405167", + googleMapsUrl: "https://www.google.com/maps/@46.820749,3.0308464,3a,75y,64.46h,92.05t/data=!3m6!1e1!3m4!1smqY-1SEtUDySmxq1a1x3MQ!2e0!7i16384!8i8192" + }, + { + lat: 48.86347151689559, + lng: 2.3468866794116283, + momaUrl: "https://www.moma.org/collection/works/405192", + googleMapsUrl: "https://www.google.com/maps/@48.8592181,2.3492388,465a,35y,337.42h,44.81t/data=!3m1!1e3" + }, + { + lat: 47.47242382870598, + lng: -0.554859510732735, + momaUrl: "https://www.moma.org/collection/works/405320", + googleMapsUrl: "https://www.google.com/maps/place/Republic+Square/@47.4712745,-0.5560514,133a,35y,33.15h,45t/data=!3m1!1e3!4m6!3m5!1s0x480878c22a1fb16b:0xb1d32731bc9c36ce!8m2!3d47.4722967!4d-0.5549854!16s%2Fg%2F1hhh_t1tb" + }, + { + lat: 45.748094414671264, + lng: 4.847056375928625, + momaUrl: "https://www.moma.org/collection/works/405070", + googleMapsUrl: "https://www.google.com/maps/@45.7488293,4.8457609,127a,35y,132.39h,45t/data=!3m1!1e3" + }, + { + lat: 48.84162218526684, + lng: 2.2888906925341397, + momaUrl: "https://www.moma.org/collection/works/405155", + googleMapsUrl: "https://www.google.com/maps/place/32+Av.+Félix+Faure,+75015+Paris,+France/@48.8404143,2.2890333,127a,35y,357.32h,45t/data=!3m1!1e3!4m7!3m6!1s0x47e6701224f19ae1:0xebefbdee3eb216f1!8m2!3d48.8417513!4d2.2889892!10e5!16s%2Fg%2F11b8v7h6z1" + }, + { + lat: 53.579265442157165, + lng: 9.939259808249368, + momaUrl: "https://www.moma.org/collection/works/405047", + googleMapsUrl: "https://www.google.com/maps/place/Langenfelder+Damm+31,+20257+Hamburg,+Germany/@53.5814204,9.9439363,352a,35y,241.5h,44.87t/data=!3m1!1e3!4m7!3m6!1s0x47b185fc79c52c37:0x3e5349744c346513!8m2!3d53.57942!4d9.93961!10e5!16s%2Fg%2F11c2grj9jr" + }, + { + lat: 48.88152151344504, + lng: 2.278035013290337, + momaUrl: "https://www.moma.org/collection/works/405201", + googleMapsUrl: "https://www.google.com/maps/@48.8816158,2.2780361,3a,75y,169.28h,86.22t/data=!3m6!1e1!3m4!1sXn0xk4DDBsOOIFCFoivjTA!2e0!7i16384!8i8192" + }, + { + lat: 48.877809323494496, + lng: 2.2701077229481874, + momaUrl: "https://www.moma.org/collection/works/405223", + googleMapsUrl: "https://www.google.com/maps/place/Jardin+d'Acclimatation/@48.8777811,2.2697644,15z/data=!4m14!1m7!3m6!1s0x47e66533f74a6505:0x8ac32ed9b41ff362!2sJardin+d'Acclimatation!8m2!3d48.8777811!4d2.2697644!16zL20vMDg3cTVy!3m5!1s0x47e66533f74a6505:0x8ac32ed9b41ff362!8m2!3d48.8777811!4d2.2697644!16zL20vMDg3cTVy" + }, + { + lat: 43.471899993228156, + lng: -0.9239526049885319, + momaUrl: "https://www.moma.org/collection/works/405324", + googleMapsUrl: "https://www.google.com/maps/@43.4719159,-0.9240121,3a,15y,105.79h,115.29t/data=!3m6!1e1!3m4!1sdYsQG66GOaFMhQz_UfHVzQ!2e0!7i16384!8i8192" + }, + { + lat: 48.861683677690586, + lng: 2.383134948059767, + momaUrl: "https://www.moma.org/collection/works/405418", + googleMapsUrl: "https://www.google.com/maps/@48.861747,2.3830888,3a,75y,351.26h,76.21t/data=!3m6!1e1!3m4!1s6DpuSjE8h4i75xCEuYuVpw!2e0!7i16384!8i8192" + }, + { + lat: 48.855927197363044, + lng: 2.3366129872966277, + momaUrl: "https://www.moma.org/collection/works/405425", + googleMapsUrl: "https://www.google.com/maps/@48.8558966,2.3366898,3a,75y,245.47h,94.87t/data=!3m6!1e1!3m4!1sLy-bbViflAq_yXuAiU_9JA!2e0!7i16384!8i8192" + }, + { + lat: 43.73941443486874, + lng: 7.427609586965822, + momaUrl: "https://www.moma.org/collection/works/44527", + googleMapsUrl: "https://www.google.com/maps/place/Hector+Berlioz+Statue/@43.7381936,7.4268018,127a,35y,30.49h,45t/data=!3m1!1e3!4m6!3m5!1s0x12cdc3970f4958d7:0xe5035950b2de16dd!8m2!3d43.7385175!4d7.4283065!16s%2Fg%2F11gphvlpwy" + }, + { + lat: 48.86974168390968, + lng: 2.3427743313825906, + momaUrl: "https://www.moma.org/collection/works/405052", + googleMapsUrl: "https://www.google.com/maps/@48.8697537,2.3428275,3a,75y,224.61h,82.68t/data=!3m6!1e1!3m4!1s2bJwQZ8sf5w_IrdvQGrjXg!2e0!7i16384!8i8192" + }, + { + lat: 45.769583468077144, + lng: 4.837052986196882, + momaUrl: "https://www.moma.org/collection/works/405060", + googleMapsUrl: "https://www.google.com/maps/@45.7695054,4.8369042,3a,75y,277.22h,95.75t/data=!3m6!1e1!3m4!1saHiEDGLW_5781Ky2Ymj0tQ!2e0!7i13312!8i6656" + }, + { + lat: 48.89581693090365, + lng: 3.3975216621559987, + momaUrl: "https://www.moma.org/collection/works/405066", + googleMapsUrl: "https://www.google.com/maps/@48.8950604,3.3962836,127a,35y,44.35h,45t/data=!3m1!1e3" + }, + { + lat: 45.75759305471242, + lng: 4.8352935623694355, + momaUrl: "https://www.moma.org/collection/works/405090", + googleMapsUrl: "https://www.google.com/maps/@45.7576397,4.8353473,3a,75y,210.81h,81.15t/data=!3m6!1e1!3m4!1s6iV1fmkn2j-5_YCr-QgK2Q!2e0!7i16384!8i8192" + }, + { + lat: 48.850070787829935, + lng: 2.3309833010962335, + momaUrl: "https://www.moma.org/collection/works/405113", + googleMapsUrl: "https://www.google.com/maps/@48.8501094,2.3308501,3a,90y,118.46h,83.09t/data=!3m6!1e1!3m4!1swKWIOyTs-H8IAem79lQMzQ!2e0!7i16384!8i8192" + }, + { + lat: 48.86681033826423, + lng: 2.3364981566167815, + momaUrl: "https://www.moma.org/collection/works/405118", + googleMapsUrl: "https://www.google.com/maps/@48.8668346,2.3365708,3a,82y,212.64h,85.38t/data=!3m6!1e1!3m4!1soHq8BioOLaKVmjbJTC7ezA!2e0!7i16384!8i8192" + }, + { + lat: 45.393428981438376, + lng: 5.262114097954639, + momaUrl: "https://www.moma.org/collection/works/405119", + googleMapsUrl: "https://www.google.com/maps/@45.3934062,5.2620852,3a,75y,18h,93.06t/data=!3m6!1e1!3m4!1sfUnJpokMN_KM_b2l40H2Qw!2e0!7i16384!8i8192" + }, + { + lat: 48.58821574168755, + lng: 2.249591138579081, + momaUrl: "https://www.moma.org/collection/works/405354", + googleMapsUrl: "https://www.google.com/maps/@48.5882409,2.2496452,3a,75y,251.56h,90.4t/data=!3m6!1e1!3m4!1swnNK_NqbnuWV4J0JmImAHw!2e0!7i16384!8i8192" + }, + { + lat: 43.7390832921887, + lng: 7.42758209220295, + momaUrl: "https://www.moma.org/collection/works/45058", + googleMapsUrl: "https://www.google.com/maps/@43.7390723,7.4276955,3a,75y,228.89h,97.56t/data=!3m6!1e1!3m4!1sPoLQmexS1lLpT0OmdTdveQ!2e0!7i13312!8i6656" + }, + { + lat: 48.11226335486959, + lng: 4.373846746278106, + momaUrl: "https://www.moma.org/collection/works/405121", + googleMapsUrl: "https://www.google.com/maps/place/Kebab+le+Break+Time/@48.1122632,4.373908,3a,75y,277.83h,77.66t/data=!3m6!1e1!3m4!1sXvURV94FTadl32taNp--bg!2e0!7i16384!8i8192!4m9!1m2!2m1!1sBar-sur-Seine+B13+P383!3m5!1s0x47efab0883d190ef:0xdd49d155e9e425a!8m2!3d48.1138899!4d4.3734581!16s%2Fg%2F1tdkw_zm" + }, + { + lat: 40.712332804665394, + lng: -74.0080418584068, + momaUrl: "https://www.moma.org/collection/works/103075", + googleMapsUrl: "https://www.google.com/maps/place/The+Woolworth+Building/@40.7132641,-74.0133187,438a,35y,90h,39.36t/data=!3m2!1e3!5s0x89c26231f276e3d1:0xd14663d250c94764!4m6!3m5!1s0x89c25a18ed652051:0x7489abf50a82e5d6!8m2!3d40.71243!4d-74.0083547!16s%2Fg%2F1tffvvwf" + }, + { + lat: 48.950816292929105, + lng: 3.6994205357616052, + momaUrl: "https://www.moma.org/collection/works/405250", + googleMapsUrl: "https://www.google.com/maps/@48.8879548,2.3245082,3a,75y,206.74h,85.66t/data=!3m6!1e1!3m4!1silghjfGJ-DbsjDp5ha0vew!2e0!7i16384!8i8192" + }, + { + lat: 43.69957083297352, + lng: 7.278377798718261, + momaUrl: "https://www.moma.org/collection/works/405098", + googleMapsUrl: "https://www.google.com/maps/place/Zucchini/@48.8707492,2.3428367,3a,90y,282.98h,94.66t/data=!3m6!1e1!3m4!1s3OvQZpfd-6eFD8av3OLQnQ!2e0!7i16384!8i8192!4m16!1m9!3m8!1s0x47e66e3c327fdc49:0xde38bab02d262e91!2s157+Rue+Montmartre,+75002+Paris,+France!3b1!8m2!3d48.8707325!4d2.3426686!10e5!16s%2Fg%2F11csgr81nt!3m5!1s0x47e66e3c2d78dcc1:0xf7c88e19344936d6!8m2!3d48.8707616!4d2.3426813!16s%2Fg%2F11hkw6kdr8" + }, + { + lat: 50.406316144899364, + lng: 1.5643431275242923, + momaUrl: "https://www.moma.org/collection/works/405041", + googleMapsUrl: "https://www.google.com/maps/@50.4066871,1.5644835,3a,47.5y,157.16h,92.88t/data=!3m6!1e1!3m4!1s84jAue32VRu8ocTQLRRQCQ!2e0!7i13312!8i6656" + }, + { + lat: 43.554379813887444, + lng: 7.016900157703351, + momaUrl: "https://www.moma.org/collection/works/405095", + googleMapsUrl: "https://www.google.com/maps/@43.5554551,7.0169359,3a,75y,307.34h,88.01t/data=!3m6!1e1!3m4!1sSJfstqTdz35OnNdxPBydjw!2e0!7i16384!8i8192" + }, + { + lat: 51.81581772657315, + lng: 4.663398991154661, + momaUrl: "https://www.moma.org/collection/works/124988", + googleMapsUrl: "https://www.google.com/maps/@51.8155554,4.6637919,3a,75y,302.4h,73.44t/data=!3m6!1e1!3m4!1steDPNu9hO2UsdEfGJyzmfQ!2e0!7i16384!8i8192" + }, + { + lat: 32.68353890710354, + lng: -117.18554480889098, + momaUrl: "https://www.moma.org/collection/works/48361", + googleMapsUrl: "https://www.google.com/maps/place/Coronado+Beach/@32.68657,-117.193616,2365m/data=!3m1!1e3!4m6!3m5!1s0x80deacc6539184dd:0x11b91f6167735576!8m2!3d32.6847742!4d-117.1878115!16s%2Fm%2F0jw38dw" + }, + { + lat: 51.254249192963584, + lng: -115.83931496929809, + momaUrl: "https://www.moma.org/collection/works/174386", + googleMapsUrl: "https://www.google.com/maps/@51.2539909,-115.8378352,3a,75y,229.75h,82.9t/data=!3m6!1e1!3m4!1sAF1QipN8TO-kEqE4F4KabE5PIZUmbDs2J2DoWwnofvOI!2e10!7i5760!8i2880" + }, + { + lat: 51.16663486772885, + lng: -115.56009131387391, + momaUrl: "https://www.moma.org/collection/works/174387", + googleMapsUrl: "https://www.google.com/maps/@51.164975,-115.5613783,3a,75y,55.75h,90t/data=!3m8!1e1!3m6!1sAF1QipOMF7nbMVfBQGIoSw-3WVViQidxs9WMx03S7-c2!2e10!3e11!6shttps:%2F%2Flh5.googleusercontent.com%2Fp%2FAF1QipOMF7nbMVfBQGIoSw-3WVViQidxs9WMx03S7-c2%3Dw203-h100-k-no-pi-0-ya180.04263-ro-0-fo100!7i6720!8i3360" + }, + { + lat: 51.41666135969157, + lng: -116.21692139074365, + momaUrl: "https://www.moma.org/collection/works/174388", + googleMapsUrl: "https://www.google.com/maps/@51.164975,-115.5613783,3a,75y,55.75h,90t/data=!3m8!1e1!3m6!1sAF1QipOMF7nbMVfBQGIoSw-3WVViQidxs9WMx03S7-c2!2e10!3e11!6shttps:%2F%2Flh5.googleusercontent.com%2Fp%2FAF1QipOMF7nbMVfBQGIoSw-3WVViQidxs9WMx03S7-c2%3Dw203-h100-k-no-pi-0-ya180.04263-ro-0-fo100!7i6720!8i3360" + }, + { + lat: 49.342937887878676, + lng: -123.11487302333927, + momaUrl: "https://www.moma.org/collection/works/174414", + googleMapsUrl: "https://www.google.com/maps/@49.3427841,-123.114401,3a,75y,294.95h,84.68t/data=!3m6!1e1!3m4!1sAF1QipNCZg9bE1wf3yfes_SfBdm7hChgfL1QzeJz_3gQ!2e10!7i5376!8i2688" + }, + { + lat: 40.83139124201942, + lng: -73.93793787712224, + momaUrl: "https://www.moma.org/collection/works/98195", + googleMapsUrl: "https://www.google.com/maps/@40.8322908,-73.9386395,127a,35y,121.03h,45t/data=!3m1!1e3" + } + + ]; + + const tooltip = d3.select("body").append("div") + .attr("class", "tooltip") + .style("opacity", 0); + + svg.selectAll("circle") + .data(locations) + .enter().append("circle") + .attr("cx", d => projection([d.lng, d.lat])[0]) + .attr("cy", d => projection([d.lng, d.lat])[1]) + .attr("r", 3) // Default circle radius + .style("fill", () => "#" + Math.floor(Math.random()*16777215).toString(16)) // Random color + .on("mouseover", function(event, d) { + tooltip.transition() + .duration(200) + .style("opacity", .9); + tooltip.html(` +

Location: ${d.lat}, ${d.lng}

+ + + `) + .style("left", (event.pageX + 5) + "px") + .style("top", (event.pageY - 28) + "px"); + }) + .on("mouseout", function() { + tooltip.transition() + .duration(500) + .style("opacity", 0); + }) + .on("click", (event, d) => showPopup(event, d)); +} + +function showPopup(event, d) { + removePopup(); // Remove existing popups first + const x = event.pageX + 10; // Offset to avoid cursor + const y = event.pageY + 10; + + d3.select("body").append("div") + .attr("class", "popup") + .style("left", `${x}px`) + .style("top", `${y}px`) + .style("position", "absolute") + .style("background", "white") + .style("border", "1px solid black") + .style("padding", "10px") + .html(` +

MoMA Collection

+

View how it looks today

+ `); + + + d3.select(document).on("click.popup", function() { + if (!d3.select(d3.event.target).classed("popup") && !d3.select(d3.event.target).node().parentNode.classList.contains("popup")) { + removePopup(); + d3.select(document).on("click.popup", null); // Remove + } + }); +} + +function removePopup() { + d3.select(".popup").remove(); +} \ No newline at end of file diff --git a/moma_places.csv b/moma_places.csv new file mode 100644 index 0000000..5e76775 --- /dev/null +++ b/moma_places.csv @@ -0,0 +1,178 @@ +https://www.moma.org/collection/works/49276,"48.851350655994004, 2.333225028860881","https://www.google.com/maps/place/48°51'04.9%22N+2°19'59.6%22E/@48.8513507,2.3306501,17z/data=!3m1!4b1!4m4!3m3!8m2!3d48.8513507!4d2.333225?entry=ttu" +https://www.moma.org/collection/works/57850,"41.88895085837717, 12.481324221898328","https://www.google.com/maps/place/Temple+of+Hercules+Victor/@41.8870852,12.4829786,248a,35y,303.43h,44.92t/data=!3m1!1e3!4m6!3m5!1s0x132f604a7f37e1c7:0x7a6122833563fa10!8m2!3d41.8887637!4d12.4807554!16zL20vMDc1Y2g1?entry=ttu" +https://www.moma.org/collection/works/54811,"31.198806566219808, 29.893327795093718","https://www.google.com/maps/place/31°11'55.7%22N+29°53'36.0%22E/@31.1988066,29.8933278,770m/data=!3m1!1e3!4m4!3m3!8m2!3d31.1988066!4d29.8933278?entry=ttu" +https://www.moma.org/collection/works/54825,"31.182045343445335, 29.89673912986325","https://www.google.com/maps/place/31°10'55.4%22N+29°53'48.3%22E/@31.1820453,29.8967391,17z/data=!3m1!4b1!4m4!3m3!8m2!3d31.1820453!4d29.8967391?entry=ttu" +https://www.moma.org/collection/works/54838,"21.691890224523586, 31.29070935713978","https://www.google.com/maps/search/nubia+sudan+waterwheel/@21.5712284,30.819198,141168m/data=!3m1!1e3?entry=ttu" +https://www.moma.org/collection/works/57847,"55.95497461552964, -3.182991460036102","https://www.google.com/maps/place/Dugald+Stewart+Monument/@55.9549604,-3.1822482,150a,35y,236.63h,45t/data=!3m1!1e3!4m6!3m5!1s0x4887c789365f252d:0xdaa07654a220018b!8m2!3d55.9544941!4d-3.1844506!16zL20vMGRmazU1?entry=ttu" +https://www.moma.org/collection/works/45554,"9.919282988437628, 78.11907984007348","https://www.google.com/maps/place/Meenakshi+Amman+Temple/@9.9187115,78.1193724,884m/data=!3m1!1e3!4m6!3m5!1s0x3b00c58461e46987:0xf134621ce5286703!8m2!3d9.9195045!4d78.1193418!16s%2Fm%2F026g1j2?entry=ttu" +https://www.moma.org/collection/works/47393,"59.3254763832158, 18.06362626171251","https://www.google.com/maps/place/59°19'31.7%22N+18°03'49.1%22E/@59.3253401,18.0635428,17z/data=!4m11!1m6!3m5!2zNTnCsDE5JzMxLjciTiAxOMKwMDMnNDkuMSJF!8m2!3d59.3254764!4d18.0636263!10e5!3m3!8m2!3d59.3254764!4d18.0636263?entry=ttu" +https://www.moma.org/collection/works/51338,"37.96910606962951, 23.732497925215448","https://www.google.com/maps/place/Temple+of+Olympian+Zeus/@37.969225,23.7318058,709m/data=!3m1!1e3!4m12!1m5!3m4!2zMzfCsDU4JzA4LjgiTiAyM8KwNDMnNTcuMCJF!8m2!3d37.9691061!4d23.7324979!3m5!1s0x14a1bd169b9c6429:0x5519bb221fe94255!8m2!3d37.9693!4d23.7331!16zL20vMDVrZzg?entry=ttu" +https://www.moma.org/collection/works/44835,"-11.889632308878712, -76.48823229136183","https://www.google.com/maps/place/Puente+Carrión/@-11.8887177,-76.4870768,856a,35y,167.07h/data=!3m1!1e3!4m6!3m5!1s0x9105f95e281281c9:0xd98db740f2364950!8m2!3d-11.8895298!4d-76.4882672!16s%2Fg%2F11r9q30t1t?entry=ttu" +https://www.moma.org/collection/works/298545,"39.36623628451196, -74.42600927065651","https://www.google.com/maps/place/39°21'58.5%22N+74°25'33.6%22W/@39.3673069,-74.4264422,127a,35y,162.72h,45t/data=!3m1!1e3!4m4!3m3!8m2!3d39.3662363!4d-74.4260093?entry=ttu" +https://www.moma.org/collection/works/400217,"44.89468359083679, -110.38462385311021","https://www.google.com/maps/search/Grand+Canyon+of+Yellowstone+river/@44.8990204,-110.4304563,10088m/data=!3m1!1e3?entry=ttu" +https://www.moma.org/collection/works/400219,"41.881993141632584, -87.63185607551002","https://www.google.com/maps/place/41°52'55.2%22N+87°37'54.7%22W/@41.8819931,-87.6318561,17z/data=!3m1!4b1!4m4!3m3!8m2!3d41.8819931!4d-87.6318561?entry=ttu" +https://www.moma.org/collection/works/400220,"41.97508424835115, -87.72942073429664","https://www.google.com/maps/place/North+Park,+Chicago,+IL/@41.9762394,-87.7363084,264m/data=!3m1!1e3!4m6!3m5!1s0x880fce7068f6c281:0x6ffce8a274ec7076!8m2!3d41.9828479!4d-87.7284429!16s%2Fg%2F1q67rgj74?entry=ttu" +https://www.moma.org/collection/works/400222,"44.343361322029196, -110.06876422845869","https://www.google.com/maps/place/Mount+Schutz/@44.338568,-110.0669723,14.98z/data=!4m13!1m6!3m5!2zNDTCsDIwJzM2LjEiTiAxMTDCsDA0JzA3LjYiVw!8m2!3d44.3433613!4d-110.0687642!10e5!3m5!1s0x534de36146be514d:0x5437330e65c181a8!8m2!3d44.3419444!4d-110.0716666!16s%2Fg%2F1thl0j3w?entry=ttu" +https://www.moma.org/collection/works/400223,"44.934813351734576, -110.72291089209295","https://www.google.com/maps/@44.9353152,-110.7231102,3a,60y,243.02h,90t/data=!3m6!1e1!3m4!1s0GR7uqvfY-nA9boewjTVVQ!2e0!7i13312!8i6656?entry=ttu" +https://www.moma.org/collection/works/400227,"41.11575601615458, -112.51874668980129","https://www.google.com/maps/@41.1788447,-112.596999,49020m/data=!3m1!1e3?entry=ttu" +https://www.moma.org/collection/works/400228,"40.77109741138491, -111.89071296083303","https://www.google.com/maps/place/Salt+Lake+Utah+Temple/@40.7709786,-111.8922027,236m/data=!3m1!1e3!4m12!1m5!3m4!2zNDDCsDQ2JzE2LjAiTiAxMTHCsDUzJzI2LjYiVw!8m2!3d40.7710974!4d-111.890713!3m5!1s0x8752f508e4890ee9:0x7f871e221aa7395d!8m2!3d40.7705774!4d-111.8919146!16zL20vMDM0em40?entry=ttu" +https://www.moma.org/collection/works/400229,"39.742927231147746, -105.51477750005218","https://www.google.com/maps/@39.7404578,-105.516203,3a,75y,179.41h,90t/data=!3m8!1e1!3m6!1sAF1QipPoK8zEzK0ZyWopVc0rJDncjTlCKYh3cQI1ZmMi!2e10!3e11!6shttps:%2F%2Flh5.googleusercontent.com%2Fp%2FAF1QipPoK8zEzK0ZyWopVc0rJDncjTlCKYh3cQI1ZmMi%3Dw203-h100-k-no-pi-0-ya353.5434-ro0-fo100!7i7680!8i3840?entry=ttu" +https://www.moma.org/collection/works/124769,"52.708001652364054, -2.7527973503280423","https://www.google.com/maps/place/52°42'28.8%22N+2°45'10.1%22W/@52.7083366,-2.752541,18.3z/data=!4m11!1m6!3m5!2zNTLCsDQyJzI4LjgiTiAywrA0NScxMC4xIlc!8m2!3d52.7080017!4d-2.7527974!10e5!3m3!8m2!3d52.7080017!4d-2.7527974?entry=ttu" +https://www.moma.org/collection/works/125021,"40.419910532397395, 15.006473286711138","https://www.google.com/maps/place/40°25'11.7%22N+15°00'23.3%22E/@40.4199105,15.0064733,17z/data=!3m1!4b1!4m4!3m3!8m2!3d40.4199105!4d15.0064733?entry=ttu" +https://www.moma.org/collection/works/46310,"40.85214308710397, 14.260868487734557","https://www.google.com/maps/place/40°51'07.7%22N+14°15'39.1%22E/@40.8521389,14.2582862,680m/data=!3m2!1e3!4b1!4m4!3m3!8m2!3d40.8521389!4d14.2608611?entry=ttu" +https://www.moma.org/collection/works/124760,"41.82480949613774, -71.40918394770594","https://www.google.com/maps/place/The+Arcade+Providence/@41.8241699,-71.410686,15z/data=!3m1!5s0x89e44514222cf7a3:0xef84708a8e9f1508!4m14!1m7!3m6!1s0x89e445142198f60f:0xac3f2b5e6651f5ea!2sThe+Arcade+Providence!8m2!3d41.8241699!4d-71.410686!16zL20vMGcxc3Rr!3m5!1s0x89e445142198f60f:0xac3f2b5e6651f5ea!8m2!3d41.8241699!4d-71.410686!16zL20vMGcxc3Rr?entry=ttu" +https://www.moma.org/collection/works/124999,"40.06939094142866, -105.61458791675068","https://www.google.com/maps/@40.06902,-105.6162267,3a,75y,241.46h,95.98t/data=!3m8!1e1!3m6!1sAF1QipMKsBX7Ns1WWLRjt6pHg3aV0j_647ZoFUxF88oL!2e10!3e11!6shttps:%2F%2Flh5.googleusercontent.com%2Fp%2FAF1QipMKsBX7Ns1WWLRjt6pHg3aV0j_647ZoFUxF88oL%3Dw203-h100-k-no-pi-0-ya84.39318-ro-0-fo100!7i11988!8i5994?entry=ttu" +https://www.moma.org/collection/works/54890,"49.440354213924934, 1.0949767938473727","https://www.google.com/maps/@49.4406398,1.0938199,3a,75y,130.44h,117.59t/data=!3m6!1e1!3m4!1s5ta9xySb4gyRJcFpuYpkTA!2e0!7i13312!8i6656?entry=ttu" +https://www.moma.org/collection/works/86468,"54.93857445344881, 43.34853430229154","https://www.google.com/maps/place/54°56'18.9%22N+43°20'54.7%22E/@54.9385745,43.3485343,517m/data=!3m1!1e3!4m4!3m3!8m2!3d54.9385745!4d43.3485343?entry=ttu" +https://www.moma.org/collection/works/124766,"52.18919947342216, -2.2198910997366075","https://www.google.com/maps/place/52°11'21.1%22N+2°13'11.6%22W/@52.1896571,-2.2182031,127a,35y,243.22h,45t/data=!3m1!1e3!4m4!3m3!8m2!3d52.1891995!4d-2.2198911?entry=ttu" +https://www.moma.org/collection/works/124767,"52.189080738926876, -2.2236043845740294","https://www.google.com/maps/place/52°11'20.7%22N+2°13'25.0%22W/@52.1890807,-2.2236044,551m/data=!3m1!1e3!4m4!3m3!8m2!3d52.1890807!4d-2.2236044?entry=ttu" +https://www.moma.org/collection/works/124854,"51.752523467511224, -1.2538621682740625","https://www.google.com/maps/place/51°45'09.1%22N+1°15'13.9%22W/@51.7517219,-1.2525434,127a,35y,314.85h,45t/data=!3m1!1e3!4m5!3m4!4b1!8m2!3d51.7525235!4d-1.2538622?entry=ttu" +https://www.moma.org/collection/works/125028,"44.40766673643361, 8.933525531317672","https://www.google.com/maps/place/Doge's+Palace/@44.4075246,8.9328796,126m/data=!3m1!1e3!4m12!1m5!3m4!2zNDTCsDI0JzI3LjYiTiA4wrA1NicwMC43IkU!8m2!3d44.4076667!4d8.9335255!3m5!1s0x12d343dd7fd645db:0xaa22692f44c315c1!8m2!3d44.4075158!4d8.9332508!16s%2Fm%2F04zxf64?entry=ttu" +https://www.moma.org/collection/works/125029,"45.25329556468555, 9.128590945770801","https://www.google.com/maps/@45.2563896,9.148056,3a,75y,249.37h,96.18t/data=!3m8!1e1!3m6!1sAF1QipPPjQ_vdxgTmf5YUF40t7p2dYCrr4AK-jp7kjk3!2e10!3e11!6shttps:%2F%2Flh5.googleusercontent.com%2Fp%2FAF1QipPPjQ_vdxgTmf5YUF40t7p2dYCrr4AK-jp7kjk3%3Dw203-h100-k-no-pi-0-ya99.985054-ro-0-fo100!7i5472!8i2736?entry=ttu" +https://www.moma.org/collection/works/45986,"48.8724588022816, 2.2992195611477877","https://www.google.com/maps/place/48°52'20.9%22N+2°17'57.2%22E/@48.8671162,2.2992196,714a,35y,39.25t/data=!3m1!1e3!4m4!3m3!8m2!3d48.8724588!4d2.2992196?entry=ttu" +https://www.moma.org/collection/works/46011,"48.86560751181969, 2.321073382837031","https://www.google.com/maps/@48.8656428,2.3206989,3a,75y,73.5h,103.32t/data=!3m8!1e1!3m6!1sAF1QipO7jvEfdyOOKX5D2ozmdmtlbrd84hXiMQtIfktA!2e10!3e11!6shttps:%2F%2Flh5.googleusercontent.com%2Fp%2FAF1QipO7jvEfdyOOKX5D2ozmdmtlbrd84hXiMQtIfktA%3Dw203-h100-k-no-pi0.029552681-ya8.318013-ro-1.2251883-fo100!7i6080!8i3040?entry=ttu" +https://www.moma.org/collection/works/46037,"48.86320496176002, 2.328358511749968","https://www.google.com/maps/place/48°51'47.5%22N+2°19'42.1%22E/@48.8634153,2.3273978,217m/data=!3m1!1e3!4m4!3m3!8m2!3d48.863205!4d2.3283585?entry=ttu" +https://www.moma.org/collection/works/46063,"48.86320496176002, 2.328358511749968","https://www.google.com/maps/place/48°51'47.5%22N+2°19'42.1%22E/@48.8634153,2.3273978,217m/data=!3m1!1e3!4m4!3m3!8m2!3d48.863205!4d2.3283585?entry=ttu" +https://www.moma.org/collection/works/46088,"48.86320496176002, 2.328358511749968","https://www.google.com/maps/place/48°51'47.5%22N+2°19'42.1%22E/@48.8634153,2.3273978,217m/data=!3m1!1e3!4m4!3m3!8m2!3d48.863205!4d2.3283585?entry=ttu" +https://www.moma.org/collection/works/46124,"48.86320496176002, 2.328358511749968","https://www.google.com/maps/place/48°51'47.5%22N+2°19'42.1%22E/@48.8634153,2.3273978,217m/data=!3m1!1e3!4m4!3m3!8m2!3d48.863205!4d2.3283585?entry=ttu" +https://www.moma.org/collection/works/405323,"44.01801038403181, 1.3528501487420201","https://www.google.com/maps/place/44°01'04.8%22N+1°21'10.3%22E/@44.018,1.3502862,647m/data=!3m2!1e3!4b1!4m4!3m3!8m2!3d44.018!4d1.3528611?entry=ttu" +https://www.moma.org/collection/works/181828,"9.017837086148987, -79.61243787557618","https://www.google.com/maps/place/Pedro+Miguel+Locks/@9.0178333,-79.6140949,569m/data=!3m1!1e3!4m12!1m5!3m4!2zOcKwMDEnMDQuMiJOIDc5wrAzNic0NC44Ilc!8m2!3d9.0178333!4d-79.6124444!3m5!1s0x8faca70c59a5311b:0x1e3bce20d6276b19!8m2!3d9.0176357!4d-79.613362!16s%2Fg%2F1vvdw8j9?entry=ttu" +https://www.moma.org/collection/works/46417,"48.85080642246692, 2.3756570600445412","https://www.google.com/maps/place/48°51'02.9%22N+2°22'32.4%22E/@48.8518389,2.3748961,127a,35y,149.58h,45t/data=!3m1!1e3!4m4!3m3!8m2!3d48.8508064!4d2.3756571?entry=ttu" +https://www.moma.org/collection/works/58042,"48.85358551205987, 2.3447553000015273","https://www.google.com/maps/place/Saint-Michel+Notre-Dame/@48.8533731,2.3443299,165m/data=!3m1!1e3!4m6!3m5!1s0x47e671e0f4eb210d:0x923cae18805384d0!8m2!3d48.8537267!4d2.3447553!16zL20vMDJqOHo5?entry=ttu" +https://www.moma.org/collection/works/405268,"48.8576336024299, 2.3457145721929433","https://www.google.com/maps/place/L'Orangerie+-+Jardinerie+-+Salon+de+thé+-+Epicerie/@48.8576581,2.3457392,3a,90y,5.45h,90.42t/data=!3m6!1e1!3m4!1sRmkCoWCdqnxfP9uNO_t03w!2e0!7i16384!8i8192!4m12!1m5!3m4!2zNDjCsDUxJzI5LjEiTiAywrAyMCczOS45IkU!8m2!3d48.8580833!4d2.3444167!3m5!1s0x47e66f3dbba6f8e9:0x7854871c1672e44d!8m2!3d48.8577599!4d2.34561!16s%2Fg%2F11jccgsqq4?entry=ttu" +https://www.moma.org/collection/works/405270,"48.872905283231084, 2.3591881840404083","https://www.google.com/maps/place/FATTOUMI+-+Centre+Sesame,+Acupuncture,+Energétique+chinoise,+Homéopathie/@48.8729053,2.3594779,295m/data=!3m1!1e3!4m12!1m5!3m4!2zNDjCsDUyJzIyLjUiTiAywrAyMSczMy4xIkU!8m2!3d48.8729053!4d2.3591882!3m5!1s0x47e66e0db76c4001:0x327dc9623e66f2ea!8m2!3d48.873052!4d2.359244!16s%2Fg%2F11b6hsdss3?entry=ttu" +https://www.moma.org/collection/works/405273,"48.87358166800715, 2.444286665386785","https://www.google.com/maps/place/93100+Montreuil,+France/@48.863812,2.448451,3a,75y,90t/data=!3m8!1e2!3m6!1sAF1QipPB2qAxyVhTw039_eFj16KwTOb3tPrsGLzEUdvL!2e10!3e12!6shttps:%2F%2Flh5.googleusercontent.com%2Fp%2FAF1QipPB2qAxyVhTw039_eFj16KwTOb3tPrsGLzEUdvL%3Dw203-h304-k-no!7i1031!8i1548!4m7!3m6!1s0x47e66d45530eef85:0xa3aa7c6db0c45bf0!8m2!3d48.861845!4d2.4465697!10e5!16zL20vMDJqYmpf?entry=ttu" +https://www.moma.org/collection/works/405275,"43.12072143919419, 5.932977899882369","https://www.google.com/maps/place/43°07'14.1%22N+5°55'59.6%22E/@43.12194,5.9311932,185a,35y,132.17h,45t/data=!3m1!1e3!4m4!3m3!8m2!3d43.120592!4d5.9332235?entry=ttu" +https://www.moma.org/collection/works/124853,"42.80898547831548, -70.86523834743586","https://www.google.com/maps/place/Old+South+Presbyterian+Church/@42.810352,-70.8665823,184a,35y,167.98h,45t/data=!3m1!1e3!4m13!1m6!3m5!2zNDLCsDQ4JzMyLjQiTiA3MMKwNTEnNTQuOSJX!8m2!3d42.8089855!4d-70.8652383!10e5!3m5!1s0x89e2e1a97c1bd8e1:0xa29867059f0a6790!8m2!3d42.8083558!4d-70.865925!16s%2Fm%2F02q8hrd?entry=ttu" +https://www.moma.org/collection/works/405305,"42.80864696838206, -70.86586061441419","https://www.google.com/maps/@42.8086808,-70.8660681,3a,75y,133.95h,90.29t/data=!3m7!1e1!3m5!1sIgiph2J0ldwQDmPoJwc9uQ!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fpanoid%3DIgiph2J0ldwQDmPoJwc9uQ%26cb_client%3Dsearch.gws-prod.gps%26w%3D86%26h%3D86%26yaw%3D115.21695%26pitch%3D0%26thumbfov%3D100!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/181830,"9.349767551055923, -79.90467595493874","https://www.google.com/maps/place/9°20'59.2%22N+79°54'16.8%22W/@9.349003,-79.9084133,1822m/data=!3m1!1e3!4m4!3m3!8m2!3d9.3497778!4d-79.9046667?entry=ttu" +https://www.moma.org/collection/works/51802,"40.756044066853505, -73.98699718541272","https://www.google.com/maps/place/40°45'21.8%22N+73°59'13.2%22W/@40.7560441,-73.9869972,682m/data=!3m1!1e3!4m4!3m3!8m2!3d40.7560441!4d-73.9869972?entry=ttu" +https://www.moma.org/collection/works/124997,"43.76794909691097, 11.254968974917196","https://www.google.com/maps/place/43°46'04.6%22N+11°15'17.9%22E/@43.7667727,11.2572471,267a,35y,286.59h,44.92t/data=!3m1!1e3!4m4!3m3!8m2!3d43.7679491!4d11.254969?entry=ttu" +https://www.moma.org/collection/works/125022,"47.050851404321755, 8.308238835504977","https://www.google.com/maps/place/47°03'03.1%22N+8°18'29.7%22E/@47.0508514,8.3082388,610m/data=!3m1!1e3!4m4!3m3!8m2!3d47.0508514!4d8.3082388?entry=ttu" +https://www.moma.org/collection/works/83524,"8.960683777875238, -79.55506571103703","https://www.google.com/maps/place/Edificio+de+La+Administración+del+Canal+de+Panamá/@8.9595434,-79.5555727,886m/data=!3m1!1e3!4m6!3m5!1s0x8faca8a935e8e6d5:0x496c7d0f698bd9e6!8m2!3d8.9594695!4d-79.5550504!16s%2Fg%2F11r92jrhl?entry=ttu" +https://www.moma.org/collection/works/83525,"47.394659609129604, 0.6823342784888706","https://www.google.com/maps/place/47°23'40.8%22N+0°40'56.4%22E/@47.3946944,0.6840261,127a,35y,270.35h,45t/data=!3m1!1e3!4m4!3m3!8m2!3d47.3946596!4d0.6823343?entry=ttu" +https://www.moma.org/collection/works/83526,"48.86138056883194, 2.3448385327857197","https://www.google.com/maps/place/48°51'41.0%22N+2°20'41.4%22E/@48.8615937,2.348235,323a,35y,270h,39.39t/data=!3m1!1e3!4m4!3m3!8m2!3d48.8613889!4d2.3448333?entry=ttu" +https://www.moma.org/collection/works/83527,"48.93628968996187, 2.3559490968331995","https://www.google.com/maps/place/Saint-Denis,+France/@48.935067,2.3595902,263a,35y,295.6h,44.91t/data=!3m1!1e3!4m6!3m5!1s0x47e66eaae7346d61:0xc7efebbaf928e90d!8m2!3d48.936181!4d2.357443!16zL20vMDF3dzV4?entry=ttu" +https://www.moma.org/collection/works/83528,"48.893441939136615, 2.385181454239455","https://www.google.com/maps/place/Aubervilliers/@48.9051574,2.3768566,580m/data=!3m3!1e3!4b1!5s0x47e66c2f4c24ff39:0xcdcf44500a5bc6a8!4m6!3m5!1s0x47e66dd756f40caf:0x21aab64b300d8c31!8m2!3d48.9051574!4d2.3768566!16s%2Fg%2F11kpgh4d6m?entry=ttu" +https://www.moma.org/collection/works/83529,"47.214260387090896, -1.5634656871213133","https://www.google.com/maps/place/47°12'51.3%22N+1°33'48.5%22W/@47.2142053,-1.5615881,127a,35y,270h,45t/data=!3m1!1e3!4m5!3m4!8m2!3d47.2142604!4d-1.5634657!10e5?entry=ttu" +https://www.moma.org/collection/works/83530,"9.09409842228529, -79.68147636807662","https://www.google.com/maps/place/Culebra+Cut/@9.0870667,-79.6835177,906a,35y,39.2t/data=!3m1!1e3!4m12!1m5!3m4!2zOcKwMDUnMzguOCJOIDc5wrA0MCc1My4zIlc!8m2!3d9.0940984!4d-79.6814764!3m5!1s0x8fab5ee4b1f714d9:0x70059d6d44f30f85!8m2!3d9.0939289!4d-79.681927!16zL20vMDZ6d3Z4?entry=ttu" +https://www.moma.org/collection/works/83531,"40.704537627962694, -73.99489060494403","https://www.google.com/maps/place/40°42'16.3%22N+73°59'41.6%22W/@40.6982215,-73.9964633,836a,35y,39.22t/data=!3m1!1e3!4m4!3m3!8m2!3d40.7045376!4d-73.9948906?entry=ttu" +https://www.moma.org/collection/works/83532,"32.84551539723446, -96.84855407038768","https://www.google.com/maps/place/32°50'43.9%22N+96°50'54.8%22W/@32.818614,-96.8562586,3733a,35y,38.69t/data=!3m1!1e3!4m4!3m3!8m2!3d32.8455154!4d-96.8485541?entry=ttu" +https://www.moma.org/collection/works/83533,"29.87602491442088, 31.221909341941064","https://www.google.com/maps/place/29°52'33.7%22N+31°13'18.9%22E/@29.8611163,31.217897,1929a,35y,38.97t/data=!3m1!1e3!4m4!3m3!8m2!3d29.8760249!4d31.2219093?entry=ttu" +https://www.moma.org/collection/works/83534,"48.85264953286066, 2.302884113418925","https://www.google.com/maps/@48.8462738,2.2995518,854a,35y,39.21t/data=!3m1!1e3?entry=ttu" +https://www.moma.org/collection/works/83535,"45.901341248974695, 6.12523255387029","https://www.google.com/maps/place/45°54'04.8%22N+6°07'30.8%22E/@45.8960512,6.1239815,770a,35y,39.14t/data=!3m1!1e3!4m11!1m6!3m5!2zNDXCsDU0JzA0LjgiTiA2wrAwNyczMC44IkU!8m2!3d45.9013333!4d6.1252222!10e5!3m3!8m2!3d45.9013333!4d6.1252222?entry=ttu" +https://www.moma.org/collection/works/83536,"40.68957479982746, -74.0430841865869","https://www.google.com/maps/place/40°41'22.5%22N+74°02'35.1%22W/@40.6828064,-74.0454878,834a,35y,39.22t/data=!3m1!1e3!4m4!3m3!8m2!3d40.6895748!4d-74.0430842?entry=ttu" +https://www.moma.org/collection/works/83537,"51.35077685989592, -0.11674142495791595","https://www.google.com/maps/@51.3532957,-0.1088572,495a,35y,297.49h,44.82t/data=!3m5!1e1!3m3!1skmVuYQ8kX54rJb4nNYdSbw!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fpanoid%3DkmVuYQ8kX54rJb4nNYdSbw%26cb_client%3Dmaps_sv.tactile.gps%26w%3D203%26h%3D100%26yaw%3D13.376058%26pitch%3D0%26thumbfov%3D100?entry=ttu" +https://www.moma.org/collection/works/83538,"49.48695530315101, 0.10751205459331625","https://www.google.com/maps/place/49°29'13.0%22N+0°06'27.0%22E/@49.4871577,0.1056542,127a,35y,89.97h,45t/data=!3m1!1e3!4m4!3m3!8m2!3d49.4869553!4d0.1075121?entry=ttu" +https://www.moma.org/collection/works/83539,"57.05108765324497, -92.59528046938004","https://www.google.com/maps/place/57°03'03.9%22N+92°35'43.0%22W/@57.0193041,-92.61905,4852a,35y,38.48t/data=!3m1!1e3!4m4!3m3!8m2!3d57.0510877!4d-92.5952805?entry=ttu" +https://www.moma.org/collection/works/83540,"45.10832271097335, 3.8414381998774823","https://www.google.com/maps/place/45°06'30.0%22N+3°50'29.2%22E/@45.1078739,3.8447553,260a,35y,279.94h,45t/data=!3m1!1e3!4m4!3m3!8m2!3d45.1083227!4d3.8414382?entry=ttu" +https://www.moma.org/collection/works/83541,"51.83052602778765, 12.241811186312464","https://www.google.com/maps/place/51°49'49.9%22N+12°14'30.5%22E/@51.8254998,12.2417997,686a,35y,39.2t/data=!3m1!1e3!4m4!3m3!8m2!3d51.830526!4d12.2418112?entry=ttu" +https://www.moma.org/collection/works/83542,"43.70264245422624, -72.28921992853401","https://www.google.com/maps/place/43°42'09.5%22N+72°17'21.2%22W/@43.7000619,-72.2900561,394a,35y,39.31t/data=!3m1!1e3!4m4!3m3!8m2!3d43.7026425!4d-72.2892199?entry=ttu" +https://www.moma.org/collection/works/83543,"42.391219697522374, -71.10139759072389","https://www.google.com/maps/place/42°23'28.4%22N+71°06'05.0%22W/@42.3897324,-71.1020385,200a,35y,39.48t/data=!3m1!1e3!4m4!3m3!8m2!3d42.3912222!4d-71.1013889?entry=ttu" +https://www.moma.org/collection/works/83544,"42.341388276915104, -71.09202121574259","https://www.google.com/maps/place/140+Fenway,+Boston,+MA+02115/@42.3435285,-71.0925955,238a,35y,163.21h,44.92t/data=!3m1!1e3!4m12!1m5!3m4!2zNDLCsDIwJzI5LjAiTiA3McKwMDUnMzEuMyJX!8m2!3d42.3413889!4d-71.0920278!3m5!1s0x89e37a1f31f9f6df:0xfcff76492ba21389!8m2!3d42.3407907!4d-71.0917633!16s%2Fg%2F1tdbgfr9?entry=ttu" +https://www.moma.org/collection/works/83545,"42.35888180748135, -71.05782293199077","https://www.google.com/maps/place/42°21'32.0%22N+71°03'28.2%22W/@42.3562669,-71.058085,311a,35y,39.42t/data=!3m1!1e3!4m4!3m3!8m2!3d42.3588818!4d-71.0578229?entry=ttu" +https://www.moma.org/collection/works/83546,"42.35747062497912, -71.05831644527095","https://www.google.com/maps/place/42°21'26.9%22N+71°03'29.9%22W/@42.3546263,-71.0593165,402a,35y,39.36t/data=!3m1!1e3!4m4!3m3!8m2!3d42.3574706!4d-71.0583164?entry=ttu" +https://www.moma.org/collection/works/83547,"42.35782577698874, -71.06346682201249","https://www.google.com/maps/place/42°21'28.2%22N+71°03'48.5%22W/@42.3565575,-71.0640233,184a,35y,39.45t/data=!3m1!1e3!4m4!3m3!8m2!3d42.3578333!4d-71.0634722?entry=ttu" +https://www.moma.org/collection/works/83548,"42.357416260733935, -71.07187729754105","https://www.google.com/maps/place/42°21'26.7%22N+71°04'18.8%22W/@42.3553242,-71.0730187,251a,35y,11.84h,44.92t/data=!3m1!1e3!4m4!3m3!8m2!3d42.3574163!4d-71.0718773?entry=ttu" +https://www.moma.org/collection/works/83549,"42.35359679124663, -71.06941856170256","https://www.google.com/maps/place/42°21'22.3%22N+71°03'56.3%22W/@42.3512891,-71.0699389,412a,35y,39.36t/data=!3m1!1e3!4m4!3m3!8m2!3d42.3561882!4d-71.0656417?entry=ttu" +https://www.moma.org/collection/works/83550,"42.355491084604395, -71.07017374169916","https://www.google.com/maps/place/42°21'19.8%22N+71°04'12.6%22W/@42.3495684,-71.0710275,815a,35y,39.23t/data=!3m1!1e3!4m4!3m3!8m2!3d42.3554911!4d-71.0701737?entry=ttu" +https://www.moma.org/collection/works/83551,"42.352641143643936, -71.06977510867817","https://www.google.com/maps/place/42°21'09.5%22N+71°04'11.2%22W/@42.3466456,-71.0697751,815a,35y,39.23t/data=!3m1!1e3!4m4!3m3!8m2!3d42.3526411!4d-71.0697751?entry=ttu" +https://www.moma.org/collection/works/83552,"42.358233465417065, -71.05687874605744","https://www.google.com/maps/place/42°21'29.6%22N+71°03'24.8%22W/@42.3522372,-71.0568787,816a,35y,39.23t/data=!3m1!1e3!4m4!3m3!8m2!3d42.3582335!4d-71.0568787?entry=ttu" +https://www.moma.org/collection/works/83553,"42.367373802453535, -71.05554694657887","https://www.google.com/maps/place/Copps+Hill+Burying+Ground/@42.3619782,-71.056937,818a,35y,39.23t/data=!3m1!1e3!4m12!1m5!3m4!2zNDLCsDIyJzAzLjgiTiA3McKwMDMnMTcuNyJX!8m2!3d42.3677174!4d-71.0549073!3m5!1s0x89e3708c0acb2b17:0xb4a9fcb9bfa4879d!8m2!3d42.3673053!4d-71.0558515!16s%2Fm%2F04658qy?entry=ttu" +https://www.moma.org/collection/works/83554,"40.83978700963584, -73.93056459708299","https://www.google.com/maps/place/40°50'32.3%22N+73°55'45.7%22W/@40.8342445,-73.9329109,832a,35y,39.22t/data=!3m1!1e3!4m4!3m3!8m2!3d40.8423108!4d-73.9293472?entry=ttu" +https://www.moma.org/collection/works/83555,"40.85582136678708, -73.92586839261148","https://www.google.com/maps/place/40°51'21.0%22N+73°55'33.1%22W/@40.8530342,-73.9153918,903a,35y,270h,39.21t/data=!3m1!1e3!4m4!3m3!8m2!3d40.8558214!4d-73.9258684?entry=ttu" +https://www.moma.org/collection/works/83556,"40.7412666079906, -73.98755111953741","https://www.google.com/maps/place/40°44'28.6%22N+73°59'15.2%22W/@40.7478254,-73.9875873,837a,35y,180h,39.22t/data=!3m1!1e3!4m4!3m3!8m2!3d40.7412666!4d-73.9875511?entry=ttu" +https://www.moma.org/collection/works/83557,"43.06999711439963, 12.614293773664077","https://www.google.com/maps/place/43°04'12.0%22N+12°36'51.5%22E/@43.0665694,12.6131165,431a,35y,39.24t/data=!3m1!1e3!4m4!3m3!8m2!3d43.0699971!4d12.6142938?entry=ttu" +https://www.moma.org/collection/works/83558,"48.87709401535688, 2.2972090942689474","https://www.google.com/maps/place/48°52'37.5%22N+2°17'50.0%22E/@48.8760721,2.2983917,107a,35y,320.2h,45t/data=!3m1!1e3!4m4!3m3!8m2!3d48.877094!4d2.2972091?entry=ttu" +https://www.moma.org/collection/works/83559,"40.75214096588844, -73.9755449157015","https://www.google.com/maps/place/40°45'07.7%22N+73°58'32.0%22W/@40.7459879,-73.9755449,838a,35y,39.22t/data=!3m1!1e3!4m4!3m3!8m2!3d40.752141!4d-73.9755449?entry=ttu" +https://www.moma.org/collection/works/83560,"48.572300370649316, -4.323490337207763","https://www.google.com/maps/place/48°34'20.3%22N+4°19'24.6%22W/@48.572781,-4.3277144,265a,35y,93.26h,44.99t/data=!3m1!1e3!4m4!3m3!8m2!3d48.5723004!4d-4.3234903?entry=ttu" +https://www.moma.org/collection/works/83561,"40.779566038419276, -73.92432378733687","https://www.google.com/maps/place/40°46'46.4%22N+73°55'27.6%22W/@40.7801639,-73.9354708,509a,35y,90h,44.79t/data=!3m1!1e3!4m4!3m3!8m2!3d40.779566!4d-73.9243238?entry=ttu" +https://www.moma.org/collection/works/83562,"49.97398458936697, 8.605080485173037","https://www.google.com/maps/place/49°58'26.3%22N+8°36'18.3%22E/@49.9688397,8.6026995,714a,35y,39.24t/data=!3m1!1e3!4m4!3m3!8m2!3d49.9739846!4d8.6050805?entry=ttu" +https://www.moma.org/collection/works/83563,"40.76627632625654, -73.97765608226179","https://www.google.com/maps/place/40°45'58.6%22N+73°58'39.6%22W/@40.7662763,-73.9695459,837a,35y,270h,39.22t/data=!3m1!1e3!4m4!3m3!8m2!3d40.7662763!4d-73.9776561?entry=ttu" +https://www.moma.org/collection/works/83564,"40.723812561290806, -74.00036569633788","https://www.google.com/maps/place/40°43'25.7%22N+74°00'01.3%22W/@40.7176788,-74.0010598,838a,35y,39.22t/data=!3m1!1e3!4m4!3m3!8m2!3d40.7238126!4d-74.0003657?entry=ttu" +https://www.moma.org/collection/works/83565,"40.59535129579829, -73.50042311622309","https://www.google.com/maps/place/40°35'43.3%22N+73°30'01.5%22W/@40.582746,-73.501651,1676a,35y,39.03t/data=!3m1!1e3!4m4!3m3!8m2!3d40.5953513!4d-73.5004231?entry=ttu" +https://www.moma.org/collection/works/83566,"44.97168037578974, -110.71378507972594","https://www.google.com/maps/place/44°58'18.1%22N+110°42'49.6%22W/@44.9605421,-110.7188262,1495a,35y,38.75t/data=!3m1!1e3!4m4!3m3!8m2!3d44.9716804!4d-110.7137851?entry=ttu" +https://www.moma.org/collection/works/83567,"44.649577907176585, -110.78601510866288","https://www.google.com/maps/place/44°38'58.5%22N+110°47'09.7%22W/@44.6274392,-110.7934536,3057a,35y,38.56t/data=!3m1!1e3!4m4!3m3!8m2!3d44.6495779!4d-110.7860151?entry=ttu" +https://www.moma.org/collection/works/83568,"29.215461934602775, -82.05354861524819","https://www.google.com/maps/place/29°12'55.7%22N+82°03'12.8%22W/@29.2137026,-82.0537043,241a,35y,39.43t/data=!3m1!1e3!4m4!3m3!8m2!3d29.2154619!4d-82.0535486?entry=ttu" +https://www.moma.org/collection/works/83569,"49.44174137210123, 1.0966995723888247","https://www.google.com/maps/place/49°26'30.3%22N+1°05'48.1%22E/@49.4366923,1.0954054,715a,35y,39.26t/data=!3m1!1e3!4m4!3m3!8m2!3d49.4417414!4d1.0966996?entry=ttu" +https://www.moma.org/collection/works/83570,"46.90103281665305, 3.8351877084962207","https://www.google.com/maps/place/46°54'03.7%22N+3°50'06.7%22E/@46.8902563,3.8327353,1475a,35y,39.03t/data=!3m1!1e3!4m4!3m3!8m2!3d46.9010328!4d3.8351877?entry=ttu" +https://www.moma.org/collection/works/83571,"47.657617234479844, -2.758276961446285","https://www.google.com/maps/place/47°39'27.4%22N+2°45'29.8%22W/@47.6566933,-2.7576207,125a,35y,325.25h,45t/data=!3m1!1e3!4m4!3m3!8m2!3d47.6576172!4d-2.758277?entry=ttu" +https://www.moma.org/collection/works/83572,"49.36469695723288, 0.08258373642310539","https://www.google.com/maps/@49.3637086,0.0838218,3a,60y,90t/data=!3m6!1e1!3m4!1sYeg0yPsdmjL_jejqoyZZSQ!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83573,"45.54788390866503, 2.309686798272528","https://www.google.com/maps/@45.5477599,2.3120016,203a,35y,270h,39.27t/data=!3m1!1e3?entry=ttu" +https://www.moma.org/collection/works/83574,"49.04504503276133, 3.9574017293482346","https://www.google.com/maps/place/Mai+des+Lys/@49.0450217,3.9564163,3a,75y,262.09h,87t/data=!3m6!1e1!3m4!1s-Zxe1TrLizO0GlLJnzNsKw!2e0!7i16384!8i8192!4m9!1m2!2m1!1schinese+food+near+Épernay,+France!3m5!1s0x47e96b51c5435caf:0x39e08f8465eeb17d!8m2!3d49.0450533!4d3.9557262!16s%2Fg%2F1tdq5b83?entry=ttu" +https://www.moma.org/collection/works/83575,"50.406344422090456, 1.5641359117590492","https://www.google.com/maps/place/La+Renommée/@50.4062627,1.5680839,231a,35y,279.99h,45t/data=!3m1!1e3!4m6!3m5!1s0x47dddc1c6d850fcb:0x153edfb850290beb!8m2!3d50.406314!4d1.5641438!16s%2Fg%2F1tvgtmbv?entry=ttu" +https://www.moma.org/collection/works/83576,"48.30358626222227, 0.18175029926383882","https://www.google.com/maps/place/7+Rue+Principale,+72610+Grandchamp,+France/@48.3013368,0.181515,245a,35y,3.98h,45t/data=!3m1!1e3!4m15!1m8!3m7!1s0x47e26e0fb55e2a9f:0x40d37521e0ac8a0!2s72610+Grandchamp,+France!3b1!8m2!3d48.301982!4d0.182782!16s%2Fm%2F03qk2fm!3m5!1s0x47e26e16cdefa507:0x7600887e135b2b3a!8m2!3d48.3036837!4d0.181673!16s%2Fg%2F11v03v4chr?entry=ttu" +https://www.moma.org/collection/works/83577,"45.76754461999532, 4.830005590971094","https://www.google.com/maps/@45.7672191,4.8295231,3a,75y,28.1h,95.55t/data=!3m6!1e1!3m4!1shc7e-oC1Qj8KEjMwoX4A1A!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83578,"48.87169127825648, 2.3718647123630174","https://www.google.com/maps/@48.8728781,2.3723464,127a,35y,193.66h,45t/data=!3m1!1e3?entry=ttu" +https://www.moma.org/collection/works/83579,"46.72281483527499, 2.506303672441867","https://www.google.com/maps/place/Ad-Thermie/@46.7232229,2.5097407,254a,35y,257.99h,45t/data=!3m1!1e3!4m6!3m5!1s0x47fa7c75cb1d02f7:0xbba8bae6b39f5940!8m2!3d46.7227884!4d2.5061934!16s%2Fg%2F11c603hdpc?entry=ttu" +https://www.moma.org/collection/works/83580,"48.8797074625925, 2.3271057936244475","https://www.google.com/maps/place/Crédit+Agricole+de+Paris+Amsterdam/@48.8787793,2.3265988,122a,35y,45t/data=!3m1!1e3!4m6!3m5!1s0x47e66e493d0c4c0b:0x8b62d8f3159010c!8m2!3d48.8797458!4d2.3272029!16s%2Fg%2F1tj20vq8?entry=ttu" +https://www.moma.org/collection/works/83581,"46.820916268168624, 3.031174284884848","https://www.google.com/maps/@46.820749,3.0308464,3a,75y,64.46h,92.05t/data=!3m6!1e1!3m4!1smqY-1SEtUDySmxq1a1x3MQ!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83582,"48.86347151689559, 2.3468866794116283","https://www.google.com/maps/@48.8592181,2.3492388,465a,35y,337.42h,44.81t/data=!3m1!1e3?entry=ttu" +https://www.moma.org/collection/works/83583,"47.47242382870598, -0.554859510732735","https://www.google.com/maps/place/Republic+Square/@47.4712745,-0.5560514,133a,35y,33.15h,45t/data=!3m1!1e3!4m6!3m5!1s0x480878c22a1fb16b:0xb1d32731bc9c36ce!8m2!3d47.4722967!4d-0.5549854!16s%2Fg%2F1hhh_t1tb?entry=ttu" +https://www.moma.org/collection/works/83584,"45.748094414671264, 4.847056375928625","https://www.google.com/maps/@45.7488293,4.8457609,127a,35y,132.39h,45t/data=!3m1!1e3?entry=ttu" +https://www.moma.org/collection/works/83585,"48.84162218526684, 2.2888906925341397","https://www.google.com/maps/place/32+Av.+Félix+Faure,+75015+Paris,+France/@48.8404143,2.2890333,127a,35y,357.32h,45t/data=!3m1!1e3!4m7!3m6!1s0x47e6701224f19ae1:0xebefbdee3eb216f1!8m2!3d48.8417513!4d2.2889892!10e5!16s%2Fg%2F11b8v7h6z1?entry=ttu" +https://www.moma.org/collection/works/83586,"53.579265442157165, 9.939259808249368","https://www.google.com/maps/place/Langenfelder+Damm+31,+20257+Hamburg,+Germany/@53.5814204,9.9439363,352a,35y,241.5h,44.87t/data=!3m1!1e3!4m7!3m6!1s0x47b185fc79c52c37:0x3e5349744c346513!8m2!3d53.57942!4d9.93961!10e5!16s%2Fg%2F11c2grj9jr?entry=ttu" +https://www.moma.org/collection/works/83587,"48.88152151344504, 2.278035013290337","https://www.google.com/maps/@48.8816158,2.2780361,3a,75y,169.28h,86.22t/data=!3m6!1e1!3m4!1sXn0xk4DDBsOOIFCFoivjTA!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83588,"48.877809323494496, 2.2701077229481874","https://www.google.com/maps/place/Jardin+d'Acclimatation/@48.8777811,2.2697644,15z/data=!4m14!1m7!3m6!1s0x47e66533f74a6505:0x8ac32ed9b41ff362!2sJardin+d'Acclimatation!8m2!3d48.8777811!4d2.2697644!16zL20vMDg3cTVy!3m5!1s0x47e66533f74a6505:0x8ac32ed9b41ff362!8m2!3d48.8777811!4d2.2697644!16zL20vMDg3cTVy?entry=ttu" +https://www.moma.org/collection/works/83589,"43.471899993228156, -0.9239526049885319","https://www.google.com/maps/@43.4719159,-0.9240121,3a,15y,105.79h,115.29t/data=!3m6!1e1!3m4!1sdYsQG66GOaFMhQz_UfHVzQ!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83590,"48.861683677690586, 2.383134948059767","https://www.google.com/maps/@48.861747,2.3830888,3a,75y,351.26h,76.21t/data=!3m6!1e1!3m4!1s6DpuSjE8h4i75xCEuYuVpw!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83591,"48.855927197363044, 2.3366129872966277","https://www.google.com/maps/@48.8558966,2.3366898,3a,75y,245.47h,94.87t/data=!3m6!1e1!3m4!1sLy-bbViflAq_yXuAiU_9JA!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83592,"43.73941443486874, 7.427609586965822","https://www.google.com/maps/place/Hector+Berlioz+Statue/@43.7381936,7.4268018,127a,35y,30.49h,45t/data=!3m1!1e3!4m6!3m5!1s0x12cdc3970f4958d7:0xe5035950b2de16dd!8m2!3d43.7385175!4d7.4283065!16s%2Fg%2F11gphvlpwy?entry=ttu" +https://www.moma.org/collection/works/83593,"48.86974168390968, 2.3427743313825906","https://www.google.com/maps/@48.8697537,2.3428275,3a,75y,224.61h,82.68t/data=!3m6!1e1!3m4!1s2bJwQZ8sf5w_IrdvQGrjXg!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83594,"45.769583468077144, 4.837052986196882","https://www.google.com/maps/@45.7695054,4.8369042,3a,75y,277.22h,95.75t/data=!3m6!1e1!3m4!1saHiEDGLW_5781Ky2Ymj0tQ!2e0!7i13312!8i6656?entry=ttu" +https://www.moma.org/collection/works/83595,"48.89581693090365, 3.3975216621559987","https://www.google.com/maps/@48.8950604,3.3962836,127a,35y,44.35h,45t/data=!3m1!1e3?entry=ttu" +https://www.moma.org/collection/works/83596,"45.75759305471242, 4.8352935623694355","https://www.google.com/maps/@45.7576397,4.8353473,3a,75y,210.81h,81.15t/data=!3m6!1e1!3m4!1s6iV1fmkn2j-5_YCr-QgK2Q!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83597,"48.850070787829935, 2.3309833010962335","https://www.google.com/maps/@48.8501094,2.3308501,3a,90y,118.46h,83.09t/data=!3m6!1e1!3m4!1swKWIOyTs-H8IAem79lQMzQ!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83598,"48.86681033826423, 2.3364981566167815","https://www.google.com/maps/@48.8668346,2.3365708,3a,82y,212.64h,85.38t/data=!3m6!1e1!3m4!1soHq8BioOLaKVmjbJTC7ezA!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83599,"45.393428981438376, 5.262114097954639","https://www.google.com/maps/@45.3934062,5.2620852,3a,75y,18h,93.06t/data=!3m6!1e1!3m4!1sfUnJpokMN_KM_b2l40H2Qw!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83600,"48.5900130211597, 2.24860432435759","https://www.google.com/maps/@48.5900094,2.2485497,3a,75y,73.33h,84.46t/data=!3m6!1e1!3m4!1sWYt-ukACLiO6AxIxUxULFA!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83601,"48.847578017906486, 2.3715758326236926","https://www.google.com/maps/@48.8475594,2.3715418,3a,75y,209.4h,96.93t/data=!3m6!1e1!3m4!1st94-6A9l2xPuc4-k6fO_sw!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83602,"48.83923268409225, 2.3478872885112003","https://www.google.com/maps/@48.8394747,2.3481236,3a,44.5y,204.75h,94.25t/data=!3m6!1e1!3m4!1sSlefFmZvcR0CzAwofJHoiQ!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83603,"48.88747483353858, 2.319565383617295","https://www.google.com/maps/@48.8873864,2.3197491,3a,84y,307.43h,82.8t/data=!3m6!1e1!3m4!1smWlUul1KbmWn8ZwDVi9hjA!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83604,"48.58821574168755, 2.249591138579081","https://www.google.com/maps/@48.5882409,2.2496452,3a,75y,251.56h,90.4t/data=!3m6!1e1!3m4!1swnNK_NqbnuWV4J0JmImAHw!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83605,"48.8658946363291, 2.2823222282946345","https://www.google.com/maps/@48.8658329,2.282251,3a,37.5y,25.38h,89.06t/data=!3m6!1e1!3m4!1s9V7zSU5qdfbXMxmwf9kNWQ!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83606,"48.902813837053934, 2.3018384237961524","https://www.google.com/maps/@48.9027844,2.3019512,3a,75y,303.85h,83t/data=!3m6!1e1!3m4!1s0MGm-hhgXT1Waq1pWxgLVA!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83607,"43.7390832921887, 7.42758209220295","https://www.google.com/maps/@43.7390723,7.4276955,3a,75y,228.89h,97.56t/data=!3m6!1e1!3m4!1sPoLQmexS1lLpT0OmdTdveQ!2e0!7i13312!8i6656?entry=ttu" +https://www.moma.org/collection/works/83608,"48.11226335486959, 4.373846746278106","https://www.google.com/maps/place/Kebab+le+Break+Time/@48.1122632,4.373908,3a,75y,277.83h,77.66t/data=!3m6!1e1!3m4!1sXvURV94FTadl32taNp--bg!2e0!7i16384!8i8192!4m9!1m2!2m1!1sBar-sur-Seine+B13+P383!3m5!1s0x47efab0883d190ef:0xdd49d155e9e425a!8m2!3d48.1138899!4d4.3734581!16s%2Fg%2F1tdkw_zm?entry=ttu" +https://www.moma.org/collection/works/83609,"48.86791156547149, 2.3539863681020052","https://www.google.com/maps/@48.8680853,2.3541171,3a,75y,191.47h,86.52t/data=!3m6!1e1!3m4!1sBICKgJjNIrPfem1vbjgYIw!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83610,"48.893248551401264, 2.3167810564384403","https://www.google.com/maps/@48.893137,2.3169488,3a,60y,331.05h,90.65t/data=!3m6!1e1!3m4!1sOcp_5BSdwmMglBx2kdBpGQ!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83611,"48.876543069693994, 2.295187653237706","https://www.google.com/maps/@48.8764267,2.2948683,3a,75y,52.12h,88.82t/data=!3m6!1e1!3m4!1se4RaRNAdvcdQuitV9av5cQ!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83612,"48.87884072530128, 2.322341253645482","https://www.google.com/maps/@48.878764,2.3222571,3a,57.3y,44.35h,93.96t/data=!3m6!1e1!3m4!1sRBMjBXZCq-OYczgoHDLpHA!2e0!7i13312!8i6656?entry=ttu" +https://www.moma.org/collection/works/83613,"40.712332804665394, -74.0080418584068","https://www.google.com/maps/place/The+Woolworth+Building/@40.7132641,-74.0133187,438a,35y,90h,39.36t/data=!3m2!1e3!5s0x89c26231f276e3d1:0xd14663d250c94764!4m6!3m5!1s0x89c25a18ed652051:0x7489abf50a82e5d6!8m2!3d40.71243!4d-74.0083547!16s%2Fg%2F1tffvvwf?entry=ttu" +https://www.moma.org/collection/works/83614,"48.86780929909038, 2.3484743922794737","https://www.google.com/maps/@48.8678552,2.3482278,3a,75y,108.24h,68.84t/data=!3m6!1e1!3m4!1sYgIyy9q0eAyax6_srprb-A!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83615,"48.887954383872156, 2.32436889516843","https://www.google.com/maps/@48.8879548,2.3245082,3a,75y,206.74h,85.66t/data=!3m6!1e1!3m4!1silghjfGJ-DbsjDp5ha0vew!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83616,"48.869564076250974, 2.3344484485853054","https://www.google.com/maps/@48.8879548,2.3245082,3a,75y,206.74h,85.66t/data=!3m6!1e1!3m4!1silghjfGJ-DbsjDp5ha0vew!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83617,"48.792231592777675, 2.5140265409880027","https://www.google.com/maps/@48.8879548,2.3245082,3a,75y,206.74h,85.66t/data=!3m6!1e1!3m4!1silghjfGJ-DbsjDp5ha0vew!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83618,"48.867490896281915, 2.3618451806922685","https://www.google.com/maps/@48.8879548,2.3245082,3a,75y,206.74h,85.66t/data=!3m6!1e1!3m4!1silghjfGJ-DbsjDp5ha0vew!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83619,"48.950816292929105, 3.6994205357616052","https://www.google.com/maps/@48.8879548,2.3245082,3a,75y,206.74h,85.66t/data=!3m6!1e1!3m4!1silghjfGJ-DbsjDp5ha0vew!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83620,"48.88193098520372, 2.2942026816324974","https://www.google.com/maps/@48.8879548,2.3245082,3a,75y,206.74h,85.66t/data=!3m6!1e1!3m4!1silghjfGJ-DbsjDp5ha0vew!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83621,"48.885421406580456, 2.3379629996681306","https://www.google.com/maps/@48.8879548,2.3245082,3a,75y,206.74h,85.66t/data=!3m6!1e1!3m4!1silghjfGJ-DbsjDp5ha0vew!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83622,"38.981865336149845, -76.48536961232166","https://www.google.com/maps/@48.8879548,2.3245082,3a,75y,206.74h,85.66t/data=!3m6!1e1!3m4!1silghjfGJ-DbsjDp5ha0vew!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83623,"48.89755410789457, 2.33159939317477","https://www.google.com/maps/@48.8976255,2.3315235,3a,37y,161.77h,94.13t/data=!3m6!1e1!3m4!1sqeMt0dKlie9GXHw7EX8Eag!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83624,"48.870753974299305, 2.3426872253428295","https://www.google.com/maps/place/Zucchini/@48.8707492,2.3428367,3a,90y,282.98h,94.66t/data=!3m6!1e1!3m4!1s3OvQZpfd-6eFD8av3OLQnQ!2e0!7i16384!8i8192!4m16!1m9!3m8!1s0x47e66e3c327fdc49:0xde38bab02d262e91!2s157+Rue+Montmartre,+75002+Paris,+France!3b1!8m2!3d48.8707325!4d2.3426686!10e5!16s%2Fg%2F11csgr81nt!3m5!1s0x47e66e3c2d78dcc1:0xf7c88e19344936d6!8m2!3d48.8707616!4d2.3426813!16s%2Fg%2F11hkw6kdr8?entry=ttu" +https://www.moma.org/collection/works/83625,"48.888393047679294, 2.284223996445877","https://www.google.com/maps/place/Zucchini/@48.8707492,2.3428367,3a,90y,282.98h,94.66t/data=!3m6!1e1!3m4!1s3OvQZpfd-6eFD8av3OLQnQ!2e0!7i16384!8i8192!4m16!1m9!3m8!1s0x47e66e3c327fdc49:0xde38bab02d262e91!2s157+Rue+Montmartre,+75002+Paris,+France!3b1!8m2!3d48.8707325!4d2.3426686!10e5!16s%2Fg%2F11csgr81nt!3m5!1s0x47e66e3c2d78dcc1:0xf7c88e19344936d6!8m2!3d48.8707616!4d2.3426813!16s%2Fg%2F11hkw6kdr8?entry=ttu" +https://www.moma.org/collection/works/83626,"48.86732307894374, 2.3222805871049714","https://www.google.com/maps/place/Zucchini/@48.8707492,2.3428367,3a,90y,282.98h,94.66t/data=!3m6!1e1!3m4!1s3OvQZpfd-6eFD8av3OLQnQ!2e0!7i16384!8i8192!4m16!1m9!3m8!1s0x47e66e3c327fdc49:0xde38bab02d262e91!2s157+Rue+Montmartre,+75002+Paris,+France!3b1!8m2!3d48.8707325!4d2.3426686!10e5!16s%2Fg%2F11csgr81nt!3m5!1s0x47e66e3c2d78dcc1:0xf7c88e19344936d6!8m2!3d48.8707616!4d2.3426813!16s%2Fg%2F11hkw6kdr8?entry=ttu" +https://www.moma.org/collection/works/83627,"48.85348798570036, 2.388418704142469","https://www.google.com/maps/place/Zucchini/@48.8707492,2.3428367,3a,90y,282.98h,94.66t/data=!3m6!1e1!3m4!1s3OvQZpfd-6eFD8av3OLQnQ!2e0!7i16384!8i8192!4m16!1m9!3m8!1s0x47e66e3c327fdc49:0xde38bab02d262e91!2s157+Rue+Montmartre,+75002+Paris,+France!3b1!8m2!3d48.8707325!4d2.3426686!10e5!16s%2Fg%2F11csgr81nt!3m5!1s0x47e66e3c2d78dcc1:0xf7c88e19344936d6!8m2!3d48.8707616!4d2.3426813!16s%2Fg%2F11hkw6kdr8?entry=ttu" +https://www.moma.org/collection/works/83628,"48.88319248418783, 2.3142525007895953","https://www.google.com/maps/place/Zucchini/@48.8707492,2.3428367,3a,90y,282.98h,94.66t/data=!3m6!1e1!3m4!1s3OvQZpfd-6eFD8av3OLQnQ!2e0!7i16384!8i8192!4m16!1m9!3m8!1s0x47e66e3c327fdc49:0xde38bab02d262e91!2s157+Rue+Montmartre,+75002+Paris,+France!3b1!8m2!3d48.8707325!4d2.3426686!10e5!16s%2Fg%2F11csgr81nt!3m5!1s0x47e66e3c2d78dcc1:0xf7c88e19344936d6!8m2!3d48.8707616!4d2.3426813!16s%2Fg%2F11hkw6kdr8?entry=ttu" +https://www.moma.org/collection/works/83629,"48.84242546714551, 2.337885614631387","https://www.google.com/maps/place/Zucchini/@48.8707492,2.3428367,3a,90y,282.98h,94.66t/data=!3m6!1e1!3m4!1s3OvQZpfd-6eFD8av3OLQnQ!2e0!7i16384!8i8192!4m16!1m9!3m8!1s0x47e66e3c327fdc49:0xde38bab02d262e91!2s157+Rue+Montmartre,+75002+Paris,+France!3b1!8m2!3d48.8707325!4d2.3426686!10e5!16s%2Fg%2F11csgr81nt!3m5!1s0x47e66e3c2d78dcc1:0xf7c88e19344936d6!8m2!3d48.8707616!4d2.3426813!16s%2Fg%2F11hkw6kdr8?entry=ttu" +https://www.moma.org/collection/works/83630,"48.86807551907759, 2.3603970625527118","https://www.google.com/maps/place/Zucchini/@48.8707492,2.3428367,3a,90y,282.98h,94.66t/data=!3m6!1e1!3m4!1s3OvQZpfd-6eFD8av3OLQnQ!2e0!7i16384!8i8192!4m16!1m9!3m8!1s0x47e66e3c327fdc49:0xde38bab02d262e91!2s157+Rue+Montmartre,+75002+Paris,+France!3b1!8m2!3d48.8707325!4d2.3426686!10e5!16s%2Fg%2F11csgr81nt!3m5!1s0x47e66e3c2d78dcc1:0xf7c88e19344936d6!8m2!3d48.8707616!4d2.3426813!16s%2Fg%2F11hkw6kdr8?entry=ttu" +https://www.moma.org/collection/works/83631,"48.859538427070696, 2.3542382153319656","https://www.google.com/maps/place/Zucchini/@48.8707492,2.3428367,3a,90y,282.98h,94.66t/data=!3m6!1e1!3m4!1s3OvQZpfd-6eFD8av3OLQnQ!2e0!7i16384!8i8192!4m16!1m9!3m8!1s0x47e66e3c327fdc49:0xde38bab02d262e91!2s157+Rue+Montmartre,+75002+Paris,+France!3b1!8m2!3d48.8707325!4d2.3426686!10e5!16s%2Fg%2F11csgr81nt!3m5!1s0x47e66e3c2d78dcc1:0xf7c88e19344936d6!8m2!3d48.8707616!4d2.3426813!16s%2Fg%2F11hkw6kdr8?entry=ttu" +https://www.moma.org/collection/works/83632,"48.88176213537974, 2.3165778351579402","https://www.google.com/maps/place/Zucchini/@48.8707492,2.3428367,3a,90y,282.98h,94.66t/data=!3m6!1e1!3m4!1s3OvQZpfd-6eFD8av3OLQnQ!2e0!7i16384!8i8192!4m16!1m9!3m8!1s0x47e66e3c327fdc49:0xde38bab02d262e91!2s157+Rue+Montmartre,+75002+Paris,+France!3b1!8m2!3d48.8707325!4d2.3426686!10e5!16s%2Fg%2F11csgr81nt!3m5!1s0x47e66e3c2d78dcc1:0xf7c88e19344936d6!8m2!3d48.8707616!4d2.3426813!16s%2Fg%2F11hkw6kdr8?entry=ttu" +https://www.moma.org/collection/works/83633,"48.853936116971276, 2.3384425714450074","https://www.google.com/maps/place/Zucchini/@48.8707492,2.3428367,3a,90y,282.98h,94.66t/data=!3m6!1e1!3m4!1s3OvQZpfd-6eFD8av3OLQnQ!2e0!7i16384!8i8192!4m16!1m9!3m8!1s0x47e66e3c327fdc49:0xde38bab02d262e91!2s157+Rue+Montmartre,+75002+Paris,+France!3b1!8m2!3d48.8707325!4d2.3426686!10e5!16s%2Fg%2F11csgr81nt!3m5!1s0x47e66e3c2d78dcc1:0xf7c88e19344936d6!8m2!3d48.8707616!4d2.3426813!16s%2Fg%2F11hkw6kdr8?entry=ttu" +https://www.moma.org/collection/works/83634,"43.69957083297352, 7.278377798718261","https://www.google.com/maps/place/Zucchini/@48.8707492,2.3428367,3a,90y,282.98h,94.66t/data=!3m6!1e1!3m4!1s3OvQZpfd-6eFD8av3OLQnQ!2e0!7i16384!8i8192!4m16!1m9!3m8!1s0x47e66e3c327fdc49:0xde38bab02d262e91!2s157+Rue+Montmartre,+75002+Paris,+France!3b1!8m2!3d48.8707325!4d2.3426686!10e5!16s%2Fg%2F11csgr81nt!3m5!1s0x47e66e3c2d78dcc1:0xf7c88e19344936d6!8m2!3d48.8707616!4d2.3426813!16s%2Fg%2F11hkw6kdr8?entry=ttu" +https://www.moma.org/collection/works/83635,"50.406316144899364, 1.5643431275242923","https://www.google.com/maps/@50.4066871,1.5644835,3a,47.5y,157.16h,92.88t/data=!3m6!1e1!3m4!1s84jAue32VRu8ocTQLRRQCQ!2e0!7i13312!8i6656?entry=ttu" +https://www.moma.org/collection/works/83636,"43.554379813887444, 7.016900157703351","https://www.google.com/maps/@43.5554551,7.0169359,3a,75y,307.34h,88.01t/data=!3m6!1e1!3m4!1sSJfstqTdz35OnNdxPBydjw!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83637,"51.81581772657315, 4.663398991154661","https://www.google.com/maps/@51.8155554,4.6637919,3a,75y,302.4h,73.44t/data=!3m6!1e1!3m4!1steDPNu9hO2UsdEfGJyzmfQ!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83638,"48.8280273494129, 2.372360161081581","https://www.google.com/maps/@43.5554551,7.0169359,3a,75y,307.34h,88.01t/data=!3m6!1e1!3m4!1sSJfstqTdz35OnNdxPBydjw!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83639,"48.8607949693704, 2.3058219375005273","https://www.google.com/maps/@43.5554551,7.0169359,3a,75y,307.34h,88.01t/data=!3m6!1e1!3m4!1sSJfstqTdz35OnNdxPBydjw!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83640,"48.88395952463923, 2.321423451816848","https://www.google.com/maps/@43.5554551,7.0169359,3a,75y,307.34h,88.01t/data=!3m6!1e1!3m4!1sSJfstqTdz35OnNdxPBydjw!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83641,"48.86309947963117, 2.370950020473315","https://www.google.com/maps/@48.863254,2.3709604,3a,57.3y,211.78h,97.4t/data=!3m6!1e1!3m4!1srTqfQzOFVZ959BqfrsmivA!2e0!7i16384!8i8192?entry=ttu" +https://www.moma.org/collection/works/83642,"48.884486463082595, 2.316915026763215","https://www.google.com/maps/place/Music+Media+Consulting+-+Agence+Presse+Tous+Médias/@48.8845139,2.3170718,3a,90y,271.57h,84.13t/data=!3m6!1e1!3m4!1sPJBtDUDvHOhgnnDZTOO7yQ!2e0!7i16384!8i8192!4m16!1m9!3m8!1s0x47e66fb10a7b3a47:0x72a1f83f4ec3cbe1!2s31+Rue+Dulong,+75017+Paris,+France!3b1!8m2!3d48.8843024!4d2.3167134!10e5!16s%2Fg%2F11c2bx2tbk!3m5!1s0x47e66e52a6333ad3:0xa711426fa1acf94b!8m2!3d48.884379!4d2.3169301!16s%2Fg%2F12hv55gfq?entry=ttu" +https://www.moma.org/collection/works/83643,"48.886703955443565, 2.3556160501627366","https://www.google.com/maps/place/FADEL+COUTURE/@48.8868348,2.3555412,3a,75y,215.56h,98.68t/data=!3m6!1e1!3m4!1saJRiNpiD1wB-Jq_WPKjI0A!2e0!7i16384!8i8192!4m15!1m8!3m7!1s0x47e66e6f80c0ab7d:0xa6970358e51e5e88!2sRue+Affre,+75018+Paris,+France!3b1!8m2!3d48.8862145!4d2.3556483!16s%2Fg%2F12gh50f_b!3m5!1s0x47e66e659d340001:0x16c5319f51b8309a!8m2!3d48.8868332!4d2.355438!16s%2Fg%2F11c31npk5g?entry=ttu" +https://www.moma.org/collection/works/83644,"48.86917346040822, 2.3430507825360904","https://www.google.com/maps/place/VEGA+Investment+Managers/@48.8690767,2.3432022,3a,75y,276.3h,96.99t/data=!3m6!1e1!3m4!1sdcHQdHI7u30LsZg5xb-ixA!2e0!7i16384!8i8192!4m16!1m9!3m8!1s0x47e66e3daa34b777:0x16c48ca269b20fe6!2s123+Rue+Montmartre,+75002+Paris,+France!3b1!8m2!3d48.86902!4d2.3431044!10e5!16s%2Fg%2F11c2c6cgcw!3m5!1s0x47e66fc4db04406b:0xe685db4e8d996633!8m2!3d48.868769!4d2.3428875!16s%2Fg%2F11b6d29y3w?entry=ttu" +https://www.moma.org/collection/works/83645,"32.68353890710354, -117.18554480889098","https://www.google.com/maps/place/Coronado+Beach/@32.68657,-117.193616,2365m/data=!3m1!1e3!4m6!3m5!1s0x80deacc6539184dd:0x11b91f6167735576!8m2!3d32.6847742!4d-117.1878115!16s%2Fm%2F0jw38dw?entry=ttu" +https://www.moma.org/collection/works/83646,"51.254249192963584, -115.83931496929809","https://www.google.com/maps/@51.2539909,-115.8378352,3a,75y,229.75h,82.9t/data=!3m6!1e1!3m4!1sAF1QipN8TO-kEqE4F4KabE5PIZUmbDs2J2DoWwnofvOI!2e10!7i5760!8i2880?entry=ttu" +https://www.moma.org/collection/works/83647,"51.16663486772885, -115.56009131387391","https://www.google.com/maps/@51.164975,-115.5613783,3a,75y,55.75h,90t/data=!3m8!1e1!3m6!1sAF1QipOMF7nbMVfBQGIoSw-3WVViQidxs9WMx03S7-c2!2e10!3e11!6shttps:%2F%2Flh5.googleusercontent.com%2Fp%2FAF1QipOMF7nbMVfBQGIoSw-3WVViQidxs9WMx03S7-c2%3Dw203-h100-k-no-pi-0-ya180.04263-ro-0-fo100!7i6720!8i3360?entry=ttu" +https://www.moma.org/collection/works/83648,"51.41666135969157, -116.21692139074365","https://www.google.com/maps/@51.164975,-115.5613783,3a,75y,55.75h,90t/data=!3m8!1e1!3m6!1sAF1QipOMF7nbMVfBQGIoSw-3WVViQidxs9WMx03S7-c2!2e10!3e11!6shttps:%2F%2Flh5.googleusercontent.com%2Fp%2FAF1QipOMF7nbMVfBQGIoSw-3WVViQidxs9WMx03S7-c2%3Dw203-h100-k-no-pi-0-ya180.04263-ro-0-fo100!7i6720!8i3360?entry=ttu" +https://www.moma.org/collection/works/83649,"49.342937887878676, -123.11487302333927","https://www.google.com/maps/@49.3427841,-123.114401,3a,75y,294.95h,84.68t/data=!3m6!1e1!3m4!1sAF1QipNCZg9bE1wf3yfes_SfBdm7hChgfL1QzeJz_3gQ!2e10!7i5376!8i2688?entry=ttu" +https://www.moma.org/collection/works/83650,"40.83139124201942, -73.93793787712224","https://www.google.com/maps/@40.8322908,-73.9386395,127a,35y,121.03h,45t/data=!3m1!1e3?entry=ttu" \ No newline at end of file diff --git a/mug_shot.html b/mug_shot.html new file mode 100644 index 0000000..195b360 --- /dev/null +++ b/mug_shot.html @@ -0,0 +1,1381 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unidentified photographer. Untitled (Page from an album of mugshots). 1870s-80s | MoMA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + +
+ +
+
+ +
+ + +
+
+
+ +
+
+
+
+ + + + + + + + + + + +
+ + + + + +
+ + + + + +
+

+ + Unidentified photographer + + Untitled (Page from an album of mugshots) + + + 1870s-80s + +

+
+ +
+ + +
+ +
+ +
    + + + +
  • + Not on view +
  • + +
+ + +
+
+ + + + +
+
+ + + + + + +
+
+ + Medium + +
+
+ + Albumen silver prints + +
+
+ + +
+
+ + Dimensions + +
+
+ + Each: 2 15/16 × 2 9/16" (7.5 × 6.5 cm) + +
+
+ + + +
+
+ + Credit + +
+
+ + Purchase + +
+
+ + + + +
+
+ + Object number + +
+
+ + 183.1989.15.a-b + +
+
+ + + + + + + +
+
+ + Department + +
+
+ + Photography + +
+
+ +
+
+ +
+
+ +
+
+ +
+ + + + +
+
+
+ + + + + + + + + + + +
+ +
+ +
+ + + Licensing + + + +
+

If you would like to reproduce an image of a work of art in MoMA’s collection, or an image of a MoMA publication or archival material (including installation views, checklists, and press releases), please contact Art Resource (publication in North America) or Scala Archives (publication in all other geographic locations).

+ +

MoMA licenses archival audio and select out of copyright film clips from our film collection. At this time, MoMA produced video cannot be licensed by MoMA/Scala. All requests to license archival audio or out of copyright film clips should be addressed to Scala Archives at [email protected]. Motion picture film stills cannot be licensed by MoMA/Scala. For access to motion picture film stills for research purposes, please contact the Film Study Center at [email protected]. For more information about film loans and our Circulating Film and Video Library, please visit https://www.moma.org/research/circulating-film.

+ +

If you would like to reproduce text from a MoMA publication, please email [email protected]. If you would like to publish text from MoMA’s archival materials, please fill out this permission form and send to [email protected].

+
+ +
+ +
+ +
+ + +
+ +
+ +
+ + + Feedback + + + +
+

This record is a work in progress. If you have additional information or spotted an error, please send feedback to [email protected].

+
+ +
+ +
+ +
+ +
+
+
+ + + +
+ + + + + + + diff --git a/mug_shots.png b/mug_shots.png new file mode 100644 index 0000000..1171dbd Binary files /dev/null and b/mug_shots.png differ diff --git a/mug_shots_2.png b/mug_shots_2.png new file mode 100644 index 0000000..1171dbd Binary files /dev/null and b/mug_shots_2.png differ diff --git a/mugshots.html b/mugshots.html new file mode 100644 index 0000000..0755dde --- /dev/null +++ b/mugshots.html @@ -0,0 +1,22 @@ + + + + + + Mug Shots + + + + +
+ Mug Shots +
+ +
+
+ + + + + + diff --git a/paris_map.css b/paris_map.css new file mode 100644 index 0000000..b01b851 --- /dev/null +++ b/paris_map.css @@ -0,0 +1,62 @@ +/* Basic reset */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Avenir Next', sans-serif; + color: #333; + background-color: #fff; +} + +#map { + width: 100%; + height: 90vh; /* Adjust height to take up most of the page */ + margin-top: 20px; +} + +#mapText { + position: absolute; + top: 40px; /* Adjust this value to move the text down */ + left: 20px; + font-size: 16px; + font-weight: 300; + max-width: 300px; + line-height: 1.5; + color: #000; /* Make the text darker */ + z-index: 1000; +} + +#mapText a { + text-decoration: none; + color: #000; /* Make the link text darker */ + font-weight: 400; + border-bottom: 1px solid #333; +} + +.mapboxgl-popup-content { + font-family: 'Avenir Next', sans-serif; + font-size: 16px; + font-weight: 300; +} + +.mapboxgl-popup-content a { + text-decoration: none; + color: #000; /* Make the link text darker */ + font-weight: 400; + border-bottom: 1px solid #333; + display: block; /* Ensure links are clickable */ + margin-bottom: 10px; /* Add some spacing between links */ +} + +.mapboxgl-popup-close-button { + font-family: 'Avenir Next', sans-serif; + font-size: 16px; + font-weight: 300; +} + + + + diff --git a/paris_map.html b/paris_map.html new file mode 100644 index 0000000..c5c9336 --- /dev/null +++ b/paris_map.html @@ -0,0 +1,17 @@ + + + + + + Paris Map + + + + +
+ + + + + + diff --git a/paris_map.js b/paris_map.js new file mode 100644 index 0000000..182886f --- /dev/null +++ b/paris_map.js @@ -0,0 +1,449 @@ +// Your Mapbox access token +mapboxgl.accessToken = 'pk.eyJ1IjoiY29saW5nZXJhZ2h0eSIsImEiOiJjbHc1N2lkbXExYWluMnFxamE5ejdtOGlkIn0.9g4c4GHKpHUj2yDhyK7UZA'; + +// Initialize the map +const map = new mapboxgl.Map({ + container: 'map', // container ID + style: 'mapbox://styles/mapbox/light-v10', // style URL + center: [2.3522, 48.8566], // starting position [lng, lat] (Paris) + zoom: 12 // starting zoom +}); + +// Add zoom and rotation controls to the map. +map.addControl(new mapboxgl.NavigationControl()); + +// Function to generate a random color +function getRandomColor() { + return '#' + Math.floor(Math.random() * 16777215).toString(16); +} + +// Example locations array in the provided format +const locations = [ + { + lat: 48.8724588022816, + lng: 2.2992195611477877, + momaUrl: "https://www.moma.org/collection/works/45986", + googleMapsUrl: "https://www.google.com/maps/place/48°52'20.9%22N+2°17'57.2%22E/@48.8671162,2.2992196,714a,35y,39.25t/data=!3m1!1e3!4m4!3m3!8m2!3d48.8724588!4d2.2992196" + }, + { + lat: 48.86560751181969, + lng: 2.321073382837031, + momaUrl: "https://www.moma.org/collection/works/46011", + googleMapsUrl: "https://www.google.com/maps/@48.8656428,2.3206989,3a,75y,73.5h,103.32t/data=!3m8!1e1!3m6!1sAF1QipO7jvEfdyOOKX5D2ozmdmtlbrd84hXiMQtIfktA!2e10!3e11!6shttps:%2F%2Flh5.googleusercontent.com%2Fp%2FAF1QipO7jvEfdyOOKX5D2ozmdmtlbrd84hXiMQtIfktA%3Dw203-h100-k-no-pi0.029552681-ya8.318013-ro-1.2251883-fo100!7i6080!8i3040" + }, + { + lat: 48.86320496176002, + lng: 2.328358511749968, + momaUrl: "https://www.moma.org/collection/works/46037", + googleMapsUrl: "https://www.google.com/maps/place/48°51'47.5%22N+2°19'42.1%22E/@48.8634153,2.3273978,217m/data=!3m1!1e3!4m4!3m3!8m2!3d48.863205!4d2.3283585" + }, + { + lat: 48.86320496176002, + lng: 2.328358511749968, + momaUrl: "https://www.moma.org/collection/works/46063", + googleMapsUrl: "https://www.google.com/maps/place/48°51'47.5%22N+2°19'42.1%22E/@48.8634153,2.3273978,217m/data=!3m1!1e3!4m4!3m3!8m2!3d48.863205!4d2.3283585" + }, + { + lat: 48.86320496176002, + lng: 2.328358511749968, + momaUrl: "https://www.moma.org/collection/works/46088", + googleMapsUrl: "https://www.google.com/maps/place/48°51'47.5%22N+2°19'42.1%22E/@48.8634153,2.3273978,217m/data=!3m1!1e3!4m4!3m3!8m2!3d48.863205!4d2.3283585" + }, + { + lat: 48.86320496176002, + lng: 2.328358511749968, + momaUrl: "https://www.moma.org/collection/works/46124", + googleMapsUrl: "https://www.google.com/maps/place/48°51'47.5%22N+2°19'42.1%22E/@48.8634153,2.3273978,217m/data=!3m1!1e3!4m4!3m3!8m2!3d48.863205!4d2.3283585" + }, + { + lat: 44.01801038403181, + lng: 1.3528501487420201, + momaUrl: "https://www.moma.org/collection/works/405323", + googleMapsUrl: "https://www.google.com/maps/place/44°01'04.8%22N+1°21'10.3%22E/@44.018,1.3502862,647m/data=!3m2!1e3!4b1!4m4!3m3!8m2!3d44.018!4d1.3528611" + }, + { + lat: 48.85080642246692, + lng: 2.3756570600445412, + momaUrl: "https://www.moma.org/collection/works/46417", + googleMapsUrl: "https://www.google.com/maps/place/48°51'02.9%22N+2°22'32.4%22E/@48.8518389,2.3748961,127a,35y,149.58h,45t/data=!3m1!1e3!4m4!3m3!8m2!3d48.8508064!4d2.3756571" + }, + { + lat: 48.85358551205987, + lng: 2.3447553000015273, + momaUrl: "https://www.moma.org/collection/works/58042", + googleMapsUrl: "https://www.google.com/maps/place/Saint-Michel+Notre-Dame/@48.8533731,2.3443299,165m/data=!3m1!1e3!4m6!3m5!1s0x47e671e0f4eb210d:0x923cae18805384d0!8m2!3d48.8537267!4d2.3447553!16zL20vMDJqOHo5" + }, + { + lat: 48.8576336024299, + lng: 2.3457145721929433, + momaUrl: "https://www.moma.org/collection/works/405268", + googleMapsUrl: "https://www.google.com/maps/place/L'Orangerie+-+Jardinerie+-+Salon+de+thé+-+Epicerie/@48.8576581,2.3457392,3a,90y,5.45h,90.42t/data=!3m6!1e1!3m4!1sRmkCoWCdqnxfP9uNO_t03w!2e0!7i16384!8i8192!4m12!1m5!3m4!2zNDjCsDUxJzI5LjEiTiAywrAyMCczOS45IkU!8m2!3d48.8580833!4d2.3444167!3m5!1s0x47e66f3dbba6f8e9:0x7854871c1672e44d!8m2!3d48.8577599!4d2.34561!16s%2Fg%2F11jccgsqq4" + }, + { + lat: 48.872905283231084, + lng: 2.3591881840404083, + momaUrl: "https://www.moma.org/collection/works/405270", + googleMapsUrl: "https://www.google.com/maps/place/FATTOUMI+-+Centre+Sesame,+Acupuncture,+Energétique+chinoise,+Homéopathie/@48.8729053,2.3594779,295m/data=!3m1!1e3!4m12!1m5!3m4!2zNDjCsDUyJzIyLjUiTiAywrAyMSczMy4xIkU!8m2!3d48.8729053!4d2.3591882!3m5!1s0x47e66e0db76c4001:0x327dc9623e66f2ea!8m2!3d48.873052!4d2.359244!16s%2Fg%2F11b6hsdss3" + }, + { + lat: 48.87358166800715, + lng: 2.444286665386785, + momaUrl: "https://www.moma.org/collection/works/405273", + googleMapsUrl: "https://www.google.com/maps/place/93100+Montreuil,+France/@48.863812,2.448451,3a,75y,90t/data=!3m8!1e2!3m6!1sAF1QipPB2qAxyVhTw039_eFj16KwTOb3tPrsGLzEUdvL!2e10!3e12!6shttps:%2F%2Flh5.googleusercontent.com%2Fp%2FAF1QipPB2qAxyVhTw039_eFj16KwTOb3tPrsGLzEUdvL%3Dw203-h304-k-no!7i1031!8i1548!4m7!3m6!1s0x47e66d45530eef85:0xa3aa7c6db0c45bf0!8m2!3d48.861845!4d2.4465697!10e5!16zL20vMDJqYmpf" + }, + { + lat: 43.12072143919419, + lng: 5.932977899882369, + momaUrl: "https://www.moma.org/collection/works/405275", + googleMapsUrl: "https://www.google.com/maps/place/43°07'14.1%22N+5°55'59.6%22E/@43.12194,5.9311932,185a,35y,132.17h,45t/data=!3m1!1e3!4m4!3m3!8m2!3d43.120592!4d5.9332235" + }, + { + lat: 42.80864696838206, + lng: -70.86586061441419, + momaUrl: "https://www.moma.org/collection/works/405305", + googleMapsUrl: "https://www.google.com/maps/@42.8086808,-70.8660681,3a,75y,133.95h,90.29t/data=!3m7!1e1!3m5!1sIgiph2J0ldwQDmPoJwc9uQ!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fpanoid%3DIgiph2J0ldwQDmPoJwc9uQ%26cb_client%3Dsearch.gws-prod.gps%26w%3D86%26h%3D86%26yaw%3D115.21695%26pitch%3D0%26thumbfov%3D100!7i16384!8i8192" + }, + { + lat: 47.394659609129604, + lng: 0.6823342784888706, + momaUrl: "https://www.moma.org/collection/works/405057", + googleMapsUrl: "https://www.google.com/maps/place/47°23'40.8%22N+0°40'56.4%22E/@47.3946944,0.6840261,127a,35y,270.35h,45t/data=!3m1!1e3!4m4!3m3!8m2!3d47.3946596!4d0.6823343" + }, + { + lat: 48.86138056883194, + lng: 2.3448385327857197, + momaUrl: "https://www.moma.org/collection/works/405077", + googleMapsUrl: "https://www.google.com/maps/place/48°51'41.0%22N+2°20'41.4%22E/@48.8615937,2.348235,323a,35y,270h,39.39t/data=!3m1!1e3!4m4!3m3!8m2!3d48.8613889!4d2.3448333" + }, + { + lat: 48.93628968996187, + lng: 2.3559490968331995, + momaUrl: "https://www.moma.org/collection/works/405085", + googleMapsUrl: "https://www.google.com/maps/place/Saint-Denis,+France/@48.935067,2.3595902,263a,35y,295.6h,44.91t/data=!3m1!1e3!4m6!3m5!1s0x47e66eaae7346d61:0xc7efebbaf928e90d!8m2!3d48.936181!4d2.357443!16zL20vMDF3dzV4" + }, + { + lat: 48.893441939136615, + lng: 2.385181454239455, + momaUrl: "https://www.moma.org/collection/works/405285", + googleMapsUrl: "https://www.google.com/maps/place/Aubervilliers/@48.9051574,2.3768566,580m/data=!3m3!1e3!4b1!5s0x47e66c2f4c24ff39:0xcdcf44500a5bc6a8!4m6!3m5!1s0x47e66dd756f40caf:0x21aab64b300d8c31!8m2!3d48.9051574!4d2.3768566!16s%2Fg%2F11kpgh4d6m" + }, + { + lat: 47.214260387090896, + lng: -1.5634656871213133, + momaUrl: "https://www.moma.org/collection/works/405326", + googleMapsUrl: "https://www.google.com/maps/place/47°12'51.3%22N+1°33'48.5%22W/@47.2142053,-1.5615881,127a,35y,270h,45t/data=!3m1!1e3!4m5!3m4!8m2!3d47.2142604!4d-1.5634657!10e5" + }, + { + lat: 48.85264953286066, + lng: 2.302884113418925, + momaUrl: "https://www.moma.org/collection/works/45941", + googleMapsUrl: "https://www.google.com/maps/@48.8462738,2.2995518,854a,35y,39.21t/data=!3m1!1e3" + }, + { + lat: 45.901341248974695, + lng: 6.12523255387029, + momaUrl: "https://www.moma.org/collection/works/405269", + googleMapsUrl: "https://www.google.com/maps/place/45°54'04.8%22N+6°07'30.8%22E/@45.8960512,6.1239815,770a,35y,39.14t/data=!3m1!1e3!4m11!1m6!3m5!2zNDXCsDU0JzA0LjgiTiA2wrAwNyczMC44IkU!8m2!3d45.9013333!4d6.1252222!10e5!3m3!8m2!3d45.9013333!4d6.1252222" + }, + { + lat: 48.87709401535688, + lng: 2.2972090942689474, + momaUrl: "https://www.moma.org/collection/works/405348", + googleMapsUrl: "https://www.google.com/maps/place/48°52'37.5%22N+2°17'50.0%22E/@48.8760721,2.2983917,107a,35y,320.2h,45t/data=!3m1!1e3!4m4!3m3!8m2!3d48.877094!4d2.2972091" + }, + { + lat: 48.87169127825648, + lng: 2.3718647123630174, + momaUrl: "https://www.moma.org/collection/works/405079", + googleMapsUrl: "https://www.google.com/maps/@48.8728781,2.3723464,127a,35y,193.66h,45t/data=!3m1!1e3" + }, + { + lat: 48.5900130211597, + lng: 2.24860432435759, + momaUrl: "https://www.moma.org/collection/works/405127", + googleMapsUrl: "https://www.google.com/maps/@48.5900094,2.2485497,3a,75y,73.33h,84.46t/data=!3m6!1e1!3m4!1sWYt-ukACLiO6AxIxUxULFA!2e0!7i16384!8i8192" + }, + { + lat: 48.847578017906486, + lng: 2.3715758326236926, + momaUrl: "https://www.moma.org/collection/works/405139", + googleMapsUrl: "https://www.google.com/maps/@48.8475594,2.3715418,3a,75y,209.4h,96.93t/data=!3m6!1e1!3m4!1st94-6A9l2xPuc4-k6fO_sw!2e0!7i16384!8i8192" + }, + { + lat: 48.83923268409225, + lng: 2.3478872885112003, + momaUrl: "https://www.moma.org/collection/works/405156", + googleMapsUrl: "https://www.google.com/maps/@48.8394747,2.3481236,3a,44.5y,204.75h,94.25t/data=!3m6!1e1!3m4!1sSlefFmZvcR0CzAwofJHoiQ!2e0!7i16384!8i8192" + }, + { + lat: 48.88747483353858, + lng: 2.319565383617295, + momaUrl: "https://www.moma.org/collection/works/405182", + googleMapsUrl: "https://www.google.com/maps/@48.8873864,2.3197491,3a,84y,307.43h,82.8t/data=!3m6!1e1!3m4!1smWlUul1KbmWn8ZwDVi9hjA!2e0!7i16384!8i8192" + }, + { + lat: 48.8658946363291, + lng: 2.2823222282946345, + momaUrl: "https://www.moma.org/collection/works/405358", + googleMapsUrl: "https://www.google.com/maps/@48.8658329,2.282251,3a,37.5y,25.38h,89.06t/data=!3m6!1e1!3m4!1s9V7zSU5qdfbXMxmwf9kNWQ!2e0!7i16384!8i8192" + }, + { + lat: 48.902813837053934, + lng: 2.3018384237961524, + momaUrl: "https://www.moma.org/collection/works/405359", + googleMapsUrl: "https://www.google.com/maps/@48.9027844,2.3019512,3a,75y,303.85h,83t/data=!3m6!1e1!3m4!1s0MGm-hhgXT1Waq1pWxgLVA!2e0!7i16384!8i8192" + }, + { + lat: 48.86791156547149, + lng: 2.3539863681020052, + momaUrl: "https://www.moma.org/collection/works/405149", + googleMapsUrl: "https://www.google.com/maps/@48.8680853,2.3541171,3a,75y,191.47h,86.52t/data=!3m6!1e1!3m4!1sBICKgJjNIrPfem1vbjgYIw!2e0!7i16384!8i8192" + }, + { + lat: 48.893248551401264, + lng: 2.3167810564384403, + momaUrl: "https://www.moma.org/collection/works/405343", + googleMapsUrl: "https://www.google.com/maps/@48.893137,2.3169488,3a,60y,331.05h,90.65t/data=!3m6!1e1!3m4!1sOcp_5BSdwmMglBx2kdBpGQ!2e0!7i16384!8i8192" + }, + { + lat: 48.876543069693994, + lng: 2.295187653237706, + momaUrl: "https://www.moma.org/collection/works/405344", + googleMapsUrl: "https://www.google.com/maps/@48.8764267,2.2948683,3a,75y,52.12h,88.82t/data=!3m6!1e1!3m4!1se4RaRNAdvcdQuitV9av5cQ!2e0!7i16384!8i8192" + }, + { + lat: 48.87884072530128, + lng: 2.322341253645482, + momaUrl: "https://www.moma.org/collection/works/405349", + googleMapsUrl: "https://www.google.com/maps/@48.878764,2.3222571,3a,57.3y,44.35h,93.96t/data=!3m6!1e1!3m4!1sRBMjBXZCq-OYczgoHDLpHA!2e0!7i13312!8i6656" + }, + { + lat: 48.86780929909038, + lng: 2.3484743922794737, + momaUrl: "https://www.moma.org/collection/works/405150", + googleMapsUrl: "https://www.google.com/maps/@48.8678552,2.3482278,3a,75y,108.24h,68.84t/data=!3m6!1e1!3m4!1sYgIyy9q0eAyax6_srprb-A!2e0!7i16384!8i8192" + }, + { + lat: 48.887954383872156, + lng: 2.32436889516843, + momaUrl: "https://www.moma.org/collection/works/405172", + googleMapsUrl: "https://www.google.com/maps/place/75+Av.+de+Clichy,+75017+Paris,+France/@48.888092,2.3245074,3a,75y,217.36h,94.33t/data=!3m6!1e1!3m4!1sF3Gh7cItgKEe_IqkqrXb4w!2e0!7i16384!8i8192!4m15!1m8!3m7!1s0x47e66fad4a50cc6d:0x9cd5795bb6bfcce1!2s75+Av.+de+Clichy,+75017+Paris,+France!3b1!8m2!3d48.8879733!4d2.3243922!16s%2Fg%2F11c43yt0hv!3m5!1s0x47e66fad4a50cc6d:0x9cd5795bb6bfcce1!8m2!3d48.8879733!4d2.3243922!16s%2Fg%2F11c43yt0hv?entry=ttu" + }, + { + lat: 48.869564076250974, + lng: 2.3344484485853054, + momaUrl: "https://www.moma.org/collection/works/405187", + googleMapsUrl: "https://www.google.com/maps/@48.8694795,2.3346778,3a,75y,272.26h,83.67t/data=!3m7!1e1!3m5!1s50nTT5z2w2Jb62901klrGw!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fpanoid%3D50nTT5z2w2Jb62901klrGw%26cb_client%3Dsearch.gws-prod.gps%26w%3D86%26h%3D86%26yaw%3D300.4901%26pitch%3D0%26thumbfov%3D100!7i16384!8i8192?entry=ttu" + }, + { + lat: 48.792231592777675, + lng: 2.5140265409880027, + momaUrl: "https://www.moma.org/collection/works/405189", + googleMapsUrl: "https://www.google.com/maps/@48.7923182,2.5136602,3a,75y,99.94h,90t/data=!3m7!1e1!3m5!1s33HZp_-s2O3_9GRUgHAXkg!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fpanoid%3D33HZp_-s2O3_9GRUgHAXkg%26cb_client%3Dsearch.gws-prod.gps%26w%3D86%26h%3D86%26yaw%3D99.94402%26pitch%3D0%26thumbfov%3D100!7i16384!8i8192?entry=ttu" + }, + { + lat: 48.867490896281915, + lng: 2.3618451806922685, + momaUrl: "https://www.moma.org/collection/works/405209", + googleMapsUrl: "https://www.google.com/maps/@48.867423,2.3617119,3a,75y,190.73h,90.99t/data=!3m7!1e1!3m5!1s-fAdWHpzl8MGnONawqwgEg!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fpanoid%3D-fAdWHpzl8MGnONawqwgEg%26cb_client%3Dsearch.gws-prod.gps%26w%3D86%26h%3D86%26yaw%3D181.20435%26pitch%3D0%26thumbfov%3D100!7i16384!8i8192?entry=ttu" + }, + { + lat: 48.88193098520372, + lng: 2.2942026816324974, + momaUrl: "https://www.moma.org/collection/works/405129", + googleMapsUrl: "https://www.google.com/maps/@48.8879548,2.3245082,3a,75y,206.74h,85.66t/data=!3m6!1e1!3m4!1silghjfGJ-DbsjDp5ha0vew!2e0!7i16384!8i8192" + }, + { + lat: 48.885421406580456, + lng: 2.3379629996681306, + momaUrl: "https://www.moma.org/collection/works/405153", + googleMapsUrl: "https://www.google.com/maps/@48.8879548,2.3245082,3a,75y,206.74h,85.66t/data=!3m6!1e1!3m4!1silghjfGJ-DbsjDp5ha0vew!2e0!7i16384!8i8192" + }, + { + lat: 48.89755410789457, + lng: 2.33159939317477, + momaUrl: "https://www.moma.org/collection/works/405154", + googleMapsUrl: "https://www.google.com/maps/@48.8976255,2.3315235,3a,37y,161.77h,94.13t/data=!3m6!1e1!3m4!1sqeMt0dKlie9GXHw7EX8Eag!2e0!7i16384!8i8192" + }, + { + lat: 48.870753974299305, + lng: 2.3426872253428295, + momaUrl: "https://www.moma.org/collection/works/405230", + googleMapsUrl: "https://www.google.com/maps/place/Zucchini/@48.8707492,2.3428367,3a,90y,282.98h,94.66t/data=!3m6!1e1!3m4!1s3OvQZpfd-6eFD8av3OLQnQ!2e0!7i16384!8i8192!4m16!1m9!3m8!1s0x47e66e3c327fdc49:0xde38bab02d262e91!2s157+Rue+Montmartre,+75002+Paris,+France!3b1!8m2!3d48.8707325!4d2.3426686!10e5!16s%2Fg%2F11csgr81nt!3m5!1s0x47e66e3c2d78dcc1:0xf7c88e19344936d6!8m2!3d48.8707616!4d2.3426813!16s%2Fg%2F11hkw6kdr8" + }, + { + lat: 48.888393047679294, + lng: 2.284223996445877, + momaUrl: "https://www.moma.org/collection/works/405254", + googleMapsUrl: "https://www.google.com/maps/@48.8883811,2.2841381,3a,68.7y,52.95h,88.93t/data=!3m6!1e1!3m4!1sr_ewBJuf79y49X75RA1Z0g!2e0!7i16384!8i8192?entry=ttu" + }, + { + lat: 48.86732307894374, + lng: 2.3222805871049714, + momaUrl: "https://www.moma.org/collection/works/405309", + googleMapsUrl: "https://www.google.com/maps/@48.8673066,2.3224054,3a,75y,269.66h,99.78t/data=!3m7!1e1!3m5!1s7HZVHadmkG08zY6ZxQ6PrQ!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fpanoid%3D7HZVHadmkG08zY6ZxQ6PrQ%26cb_client%3Dsearch.gws-prod.gps%26w%3D86%26h%3D86%26yaw%3D308.68314%26pitch%3D0%26thumbfov%3D100!7i16384!8i8192?entry=ttu" + }, + { + lat: 48.85348798570036, + lng: 2.388418704142469, + momaUrl: "https://www.moma.org/collection/works/405327", + googleMapsUrl: "https://www.google.com/maps/@48.8531813,2.3879206,3a,53.9y,38.03h,87.56t/data=!3m7!1e1!3m5!1sSxYw3a74a39iHvkHQ_uDjA!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fpanoid%3DSxYw3a74a39iHvkHQ_uDjA%26cb_client%3Dsearch.gws-prod.gps%26w%3D86%26h%3D86%26yaw%3D46.256184%26pitch%3D0%26thumbfov%3D100!7i16384!8i8192?entry=ttu" + }, + { + lat: 48.88319248418783, + lng: 2.3142525007895953, + momaUrl: "https://www.moma.org/collection/works/405339", + googleMapsUrl: "https://www.google.com/maps/@48.883249,2.3143303,3a,75y,235.46h,89.34t/data=!3m7!1e1!3m5!1sArJraphWMYDSg-sI8p0rEQ!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fpanoid%3DArJraphWMYDSg-sI8p0rEQ%26cb_client%3Dsearch.gws-prod.gps%26w%3D86%26h%3D86%26yaw%3D209.93335%26pitch%3D0%26thumbfov%3D100!7i13312!8i6656?entry=ttu" + }, + { + lat: 48.84242546714551, + lng: 2.337885614631387, + momaUrl: "https://www.moma.org/collection/works/405369", + googleMapsUrl: "https://www.google.com/maps/@48.8424973,2.3379951,3a,75y,224.07h,99.71t/data=!3m6!1e1!3m4!1s1bpeJVXTr132uO_GRxwRkQ!2e0!7i16384!8i8192?entry=ttu" + }, + { + lat: 48.86807551907759, + lng: 2.3603970625527118, + momaUrl: "https://www.moma.org/collection/works/405382", + googleMapsUrl: "https://www.google.com/maps/@48.8682662,2.3605349,3a,62.9y,203.13h,88.59t/data=!3m7!1e1!3m5!1sBtpqWcL_g-vlL1Rtg-wVAQ!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fpanoid%3DBtpqWcL_g-vlL1Rtg-wVAQ%26cb_client%3Dsearch.gws-prod.gps%26w%3D86%26h%3D86%26yaw%3D210.11267%26pitch%3D0%26thumbfov%3D100!7i16384!8i8192?entry=ttu" + }, + { + lat: 48.859538427070696, + lng: 2.3542382153319656, + momaUrl: "https://www.moma.org/collection/works/405441", + googleMapsUrl: "https://www.google.com/maps/@48.8690188,2.3681278,3a,75y,132.36h,82.92t/data=!3m6!1e1!3m4!1sztsNFRVsb1Y5NfHnd1nofw!2e0!7i16384!8i8192?entry=ttu" + }, + { + lat: 48.88176213537974, + lng: 2.3165778351579402, + momaUrl: "https://www.moma.org/collection/works/405345", + googleMapsUrl: "https://www.google.com/maps/@48.8814484,2.3167389,3a,47.4y,-10.72h,90.55t/data=!3m7!1e1!3m5!1sAk4fqWoTDbHY5yTrSzzzaQ!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fpanoid%3DAk4fqWoTDbHY5yTrSzzzaQ%26cb_client%3Dsearch.gws-prod.gps%26w%3D86%26h%3D86%26yaw%3D2.6429303%26pitch%3D0%26thumbfov%3D100!7i16384!8i8192?entry=ttu" + }, + { + lat: 48.853936116971276, + lng: 2.3384425714450074, + momaUrl: "https://www.moma.org/collection/works/405405", + googleMapsUrl: "https://www.google.com/maps/@48.853873,2.3383019,3a,75y,73.71h,106.4t/data=!3m6!1e1!3m4!1sUN77jocIej6nHHPzVWLrXA!2e0!7i16384!8i8192?entry=ttu" + }, + { + lat: 48.8280273494129, + lng: 2.372360161081581, + momaUrl: "https://www.moma.org/collection/works/405165", + googleMapsUrl: "https://www.google.com/maps/@48.8281265,2.3722178,3a,75y,121.4h,87.71t/data=!3m6!1e1!3m4!1s405NjYpt-x15RU_LcgEhMA!2e0!7i16384!8i8192?entry=ttu" + }, + { + lat: 48.8607949693704, + lng: 2.3058219375005273, + momaUrl: "https://www.moma.org/collection/works/405340", + googleMapsUrl: "https://www.google.com/maps/@48.8607003,2.3057223,3a,75y,85.54h,74.92t/data=!3m7!1e1!3m5!1sRs01vyE4_WgJvpw0_nlEuQ!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fpanoid%3DRs01vyE4_WgJvpw0_nlEuQ%26cb_client%3Dsearch.gws-prod.gps%26w%3D86%26h%3D86%26yaw%3D52.43924%26pitch%3D0%26thumbfov%3D100!7i16384!8i8192?entry=ttu" + }, + { + lat: 48.88395952463923, + lng: 2.321423451816848, + momaUrl: "https://www.moma.org/collection/works/405341", + googleMapsUrl: "https://www.google.com/maps/@48.8838683,2.3216332,3a,75y,318.32h,87.85t/data=!3m6!1e1!3m4!1soeRrxsC2VFomFdhVM87pYQ!2e0!7i16384!8i8192?entry=ttu" + }, + { + lat: 48.86309947963117, + lng: 2.370950020473315, + momaUrl: "https://www.moma.org/collection/works/405399", + googleMapsUrl: "https://www.google.com/maps/@48.863254,2.3709604,3a,57.3y,211.78h,97.4t/data=!3m6!1e1!3m4!1srTqfQzOFVZ959BqfrsmivA!2e0!7i16384!8i8192" + }, + { + lat: 48.884486463082595, + lng: 2.316915026763215, + momaUrl: "https://www.moma.org/collection/works/405352", + googleMapsUrl: "https://www.google.com/maps/place/Music+Media+Consulting+-+Agence+Presse+Tous+Médias/@48.8845139,2.3170718,3a,90y,271.57h,84.13t/data=!3m6!1e1!3m4!1sPJBtDUDvHOhgnnDZTOO7yQ!2e0!7i16384!8i8192!4m16!1m9!3m8!1s0x47e66fb10a7b3a47:0x72a1f83f4ec3cbe1!2s31+Rue+Dulong,+75017+Paris,+France!3b1!8m2!3d48.8843024!4d2.3167134!10e5!16s%2Fg%2F11c2bx2tbk!3m5!1s0x47e66e52a6333ad3:0xa711426fa1acf94b!8m2!3d48.884379!4d2.3169301!16s%2Fg%2F12hv55gfq" + }, + { + lat: 48.886703955443565, + lng: 2.3556160501627366, + momaUrl: "https://www.moma.org/collection/works/405353", + googleMapsUrl: "https://www.google.com/maps/place/FADEL+COUTURE/@48.8868348,2.3555412,3a,75y,215.56h,98.68t/data=!3m6!1e1!3m4!1saJRiNpiD1wB-Jq_WPKjI0A!2e0!7i16384!8i8192!4m15!1m8!3m7!1s0x47e66e6f80c0ab7d:0xa6970358e51e5e88!2sRue+Affre,+75018+Paris,+France!3b1!8m2!3d48.8862145!4d2.3556483!16s%2Fg%2F12gh50f_b!3m5!1s0x47e66e659d340001:0x16c5319f51b8309a!8m2!3d48.8868332!4d2.355438!16s%2Fg%2F11c31npk5g" + }, + { + lat: 48.86917346040822, + lng: 2.3430507825360904, + momaUrl: "https://www.moma.org/collection/works/405333", + googleMapsUrl: "https://www.google.com/maps/place/VEGA+Investment+Managers/@48.8690767,2.3432022,3a,75y,276.3h,96.99t/data=!3m6!1e1!3m4!1sdcHQdHI7u30LsZg5xb-ixA!2e0!7i16384!8i8192!4m16!1m9!3m8!1s0x47e66e3daa34b777:0x16c48ca269b20fe6!2s123+Rue+Montmartre,+75002+Paris,+France!3b1!8m2!3d48.86902!4d2.3431044!10e5!16s%2Fg%2F11c2c6cgcw!3m5!1s0x47e66fc4db04406b:0xe685db4e8d996633!8m2!3d48.868769!4d2.3428875!16s%2Fg%2F11b6d29y3w" + } + +]; + +// Assign a random color to each location +locations.forEach(location => { + location.color = getRandomColor(); +}); + +// Add a layer for the circles +map.on('load', function() { + // Add a data source containing GeoJSON data + map.addSource('locations', { + 'type': 'geojson', + 'data': { + 'type': 'FeatureCollection', + 'features': locations.map(location => ({ + 'type': 'Feature', + 'geometry': { + 'type': 'Point', + 'coordinates': [location.lng, location.lat] + }, + 'properties': { + 'momaUrl': location.momaUrl, + 'googleMapsUrl': location.googleMapsUrl, + 'color': location.color // Add the random color property + } + })) + } + }); + + // Add a layer showing the circles + map.addLayer({ + 'id': 'locations', + 'type': 'circle', + 'source': 'locations', + 'paint': { + 'circle-radius': 6, + 'circle-color': ['get', 'color'], // Use the random color from the properties + 'circle-stroke-color': '#000', + 'circle-stroke-width': 1 + } + }); + + // Create a popup, but don't add it to the map yet. + const popup = new mapboxgl.Popup({ + closeButton: true, + closeOnClick: false + }); + + // Change the cursor to a pointer when the mouse is over the places layer. + map.on('mouseenter', 'locations', function(e) { + map.getCanvas().style.cursor = 'pointer'; + }); + + // Change it back to a pointer when it leaves. + map.on('mouseleave', 'locations', function() { + map.getCanvas().style.cursor = ''; + }); + + // When a click event occurs on a feature in the locations layer, open a popup at the + // location of the feature, with description HTML from its properties. + map.on('click', 'locations', function(e) { + const coordinates = e.features[0].geometry.coordinates.slice(); + const description = ` +

MoMA Collection

+

View how it looks today

+ `; + + // Ensure that if the map is zoomed out such that multiple + // copies of the feature are visible, the popup appears + // over the copy being pointed to. + while (Math.abs(e.lngLat.lng - coordinates[0]) > 180) { + coordinates[0] += e.lngLat.lng > coordinates[0] ? 360 : -360; + } + + popup.setLngLat(coordinates).setHTML(description).addTo(map); + }); +}); + + diff --git a/portrait_3.png b/portrait_3.png new file mode 100644 index 0000000..c85424c Binary files /dev/null and b/portrait_3.png differ diff --git a/style.css b/style.css new file mode 100644 index 0000000..5d4772e --- /dev/null +++ b/style.css @@ -0,0 +1,150 @@ +@import url('https://fonts.googleapis.com/css2?family=Libre+Franklin:wght@400;700&display=swap'); /* Import Libre Franklin */ + +body { + font-family: 'Avenir Next', sans-serif; + margin: 0; + padding: 0; + align-items: center; + background: #f4f4f4; +} + +.main-title { + text-align: center; + font-size: 60px; + font-weight: 300; /* Thinner font weight */ + color: white; + text-shadow: + -1px -1px 0 #000, + 1px -1px 0 #000, + -1px 1px 0 #000, + 1px 1px 0 #000; + margin: 20px 0; +} + +.description { + text-align: center; + font-size: 20px; /* Slightly smaller than main title */ + font-weight: 300; /* Thinner font weight */ + color: #333; + margin: 10px 20px; +} + +.collage { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 20px; + padding-bottom: 40px; /* Add padding to the bottom */ +} + +.image-section { + text-align: center; + flex: 1 1 calc(45% - 40px); /* Adjusted width minus margin */ + max-width: calc(45% - 40px); /* Adjust width to ensure they fit within the page */ +} + +.sub-title { + font-size: 40px; /* Larger font size for clarity */ + font-weight: 300; /* Thinner font weight */ + color: #333; /* Darker font color */ + margin-bottom: 10px; + text-align: center; + text-shadow: none; /* Remove the text shadow for a clean look */ +} + +.collage-item { + background-size: cover; + background-position: center; + width: 100%; + height: 200px; /* Adjust based on the image's aspect ratio */ + cursor: pointer; + position: relative; + display: block; +} + +.overlay-text { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + text-align: left; + color: white; + background-color: rgba(0, 0, 0, 0.5); + padding: 5px; +} + +.image-container { + margin-top: 0; + position: relative; + max-width: 80%; /* This will make the image container fill 80% of the page width */ + margin: 20px auto; /* This centers the container horizontally and adds space above it */ + height: auto; /* Maintains aspect ratio of the content */ + display: flex; + justify-content: center; + align-items: center; +} + +.image-container img { + max-width: 100%; /* Make the image responsive */ + height: auto; /* Maintain aspect ratio */ +} + +.overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + pointer-events: none; +} + +#overlay, #overlay-mugshots, #overlay-festons { + display: grid; +} + +#overlay { + grid-template-columns: repeat(10, 1fr); + grid-template-rows: repeat(10, 1fr); +} + +#overlay-mugshots { + grid-template-columns: repeat(4, 1fr); + grid-template-rows: repeat(4, 1fr); +} + +#overlay-festons { + grid-template-columns: repeat(20, 1fr); + grid-template-rows: repeat(7, 1fr); +} + +.clickable-area { + cursor: pointer; + border: 1px solid black; /* Ensure borders are visible */ + box-sizing: border-box; + pointer-events: all; +} + +.clickable-area:hover { + background-color: rgba(244, 55, 13, 0.5); /* Red with 50% opacity */ +} + +/* New styles for the mugshots section */ +.image-container-mugshots { + margin-top: 0; + position: relative; + width: 80%; + margin: 20px auto; + height: auto; + display: flex; + justify-content: center; + align-items: center; +} + +.image-container-mugshots img { + width: 100%; + height: auto; + object-fit: cover; /* Ensures the image covers the container without being cut off */ + object-position: center; /* Center the image within the container */ +} + + diff --git a/worlds-coastline_808.geojson b/worlds-coastline_808.geojson new file mode 100644 index 0000000..12affd2 --- /dev/null +++ b/worlds-coastline_808.geojson @@ -0,0 +1 @@ +{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"scalerank":0,"featureclass":"Ocean"},"geometry":{"type":"Polygon","coordinates":[[[49.110291,41.282288],[48.584473,41.808899],[47.492493,42.986694],[47.590881,43.660278],[46.682129,44.609314],[47.675903,45.641479],[48.645508,45.806274],[49.101318,46.399475],[50.034119,46.609131],[51.192078,47.048706],[52.042114,46.804687],[53.042725,46.853088],[53.220886,46.23468],[53.040894,45.259094],[52.16748,45.408508],[51.316895,45.246094],[51.278503,44.514893],[50.305725,44.609924],[50.339111,44.284119],[50.891296,44.031128],[51.342529,43.133118],[52.501526,42.792297],[52.692078,42.443909],[52.446289,42.027283],[52.502502,41.783325],[52.814697,41.135498],[52.916687,41.868103],[53.72168,42.123291],[54.008301,41.551331],[54.736877,40.951111],[53.858276,40.631104],[52.915283,40.876526],[52.694092,40.033691],[53.35791,39.975281],[53.101074,39.29071],[53.88092,38.952087],[53.735474,37.906128],[53.921692,37.198914],[53.825928,36.965088],[52.264099,36.7005],[50.842285,36.872925],[50.147888,37.374695],[49.199707,37.582886],[48.883301,38.320313],[48.856506,38.815491],[49.223328,39.049316],[49.395325,39.399475],[49.569275,40.176086],[50.392883,40.256531],[50.0849,40.526306],[49.618896,40.572876],[49.110291,41.282288]]]}},{"type":"Feature","properties":{"scalerank":0,"featureclass":"Ocean"},"geometry":{"type":"Polygon","coordinates":[[[180,71.515714],[178.7253,71.0988],[178.903425,70.78114],[180,70.832199],[180,68.963722],[178.600098,69.400085],[175.724121,69.877319],[173.643921,69.817505],[170.453491,70.097107],[170.008301,69.652893],[170.816895,69.013672],[169.577698,68.693909],[167.835693,69.582703],[165.940491,69.472107],[164.05249,69.668274],[162.279114,69.64209],[160.940674,69.437317],[159.708679,69.722107],[159.830322,70.453308],[158.997925,70.866699],[157.006897,71.031494],[152.968872,70.842285],[150.351318,71.606506],[149.500122,72.200073],[140.468079,72.849487],[139.147888,72.416321],[139.869873,71.487915],[138.234131,71.628113],[137.497681,71.347717],[135.562073,71.655273],[133.857727,71.386475],[132.253479,71.836304],[131.288696,70.787109],[129.716125,71.193115],[128.460083,71.980103],[129.051697,72.398682],[128.591309,73.038696],[126.976501,73.565491],[125.380127,73.56012],[123.257874,73.735107],[123.200684,72.971313],[119.020081,73.120117],[118.776306,73.587708],[115.567871,73.75293],[113.968872,73.59491],[113.529724,73.335083],[113.01947,73.976929],[112.119324,73.78772],[110.640076,74.0401],[109.400085,74.180115],[110.151306,74.476685],[112.779297,75.031921],[113.885498,75.327881],[114.134277,75.847717],[113.331482,76.22229],[111.077271,76.710083],[108.153931,76.723328],[107.240112,76.480103],[106.970276,76.974304],[104.705078,77.127502],[106.066711,77.373901],[104.351685,77.697876],[101.990906,77.287476],[101.035278,76.861877],[100.759705,76.430298],[98.922485,76.446899],[96.678284,75.915527],[95.860107,76.140076],[93.234314,76.047302],[92.900696,75.773315],[90.260071,75.640076],[88.315674,75.143921],[87.16687,75.116516],[86.009705,74.459717],[86.822327,73.93689],[84.655273,73.805908],[82.250122,73.850098],[80.511108,73.648315],[80.610718,72.582886],[81.500122,71.750122],[79.6521,72.320129],[77.576721,72.267273],[75.903076,71.874084],[76.359131,71.152893],[75.289124,71.335693],[75.683472,72.300476],[75.158081,72.855103],[74.659302,72.832275],[74.89093,72.121277],[73.101074,71.447083],[74.399902,70.631897],[73.601929,69.627686],[73.842285,69.071472],[74.935913,68.989319],[74.469299,68.329102],[75.052124,67.760498],[74.186523,67.284302],[73.921082,66.78949],[72.820679,66.532715],[72.423096,66.172729],[71.28009,66.320129],[73.238708,67.740479],[73.667908,68.407898],[72.564697,69.020874],[72.79187,70.391113],[72.470093,71.090271],[71.848083,71.409119],[72.796082,72.220093],[72.587524,72.776306],[69.940125,73.0401],[69.196289,72.843506],[68.5401,71.934509],[66.694702,71.029114],[66.724915,70.708923],[67.259888,69.928711],[66.930115,69.454712],[68.135315,69.356506],[68.16449,69.144287],[69.180725,68.615723],[68.512085,68.092285],[64.888123,69.234924],[63.504089,69.547485],[60.55011,69.850098],[60.03009,69.520081],[61.077881,68.940674],[59.941528,68.278503],[58.802124,68.88092],[57.317078,68.466309],[55.442688,68.438721],[54.726318,68.097107],[53.485901,68.201294],[54.47168,68.808289],[53.717529,68.857483],[50.227722,67.998718],[48.138672,67.522522],[47.894287,66.884521],[46.349121,66.667725],[45.562073,67.010071],[45.555298,67.566528],[46.821289,67.68988],[46.250122,68.250122],[43.452881,68.570923],[44.187927,67.9505],[43.698486,67.352478],[44.532288,66.756287],[43.94989,66.069092],[43.016113,66.418701],[42.093079,66.476318],[39.762695,65.496887],[40.43573,64.764526],[39.593506,64.520874],[37.176086,65.143311],[36.5177,64.780273],[37.14209,64.334717],[37.012878,63.849915],[36.231323,64.109497],[34.943909,64.41449],[34.81488,65.900085],[33.184509,66.632507],[33.918701,66.759705],[38.382874,65.999512],[40.01593,66.266296],[41.126099,66.791687],[41.059875,67.457275],[40.29248,67.932495],[36.514099,69.063477],[33.775513,69.301514],[32.13269,69.905884],[31.101074,69.558105],[30.005493,70.186279],[31.293518,70.453918],[28.165527,71.185486],[26.370117,70.986328],[24.546692,71.030518],[23.023682,70.202087],[21.378479,70.25531],[19.184082,69.817505],[16.435913,68.563293],[14.761292,67.81073],[12.358276,65.8797],[10.52771,64.486084],[8.553528,63.454102],[5.912903,62.614502],[4.992126,61.97113],[5.308289,59.66333],[5.665894,58.588074],[7.048889,58.078918],[8.38208,58.313293],[10.356689,59.46991],[11.027283,58.856079],[11.788086,57.441895],[12.625122,56.307129],[12.942871,55.361877],[14.100708,55.407898],[14.666687,56.200928],[15.879883,56.104309],[16.447693,57.041077],[16.829285,58.71991],[17.869324,58.953918],[18.78772,60.081909],[17.831482,60.636719],[17.11969,61.341309],[17.8479,62.749512],[19.778931,63.60968],[21.36969,64.413696],[21.213501,65.026123],[22.183289,65.723877],[23.903503,66.006897],[25.294128,65.534485],[25.398071,65.111511],[24.73053,64.902283],[22.442688,63.817871],[21.536072,63.18988],[21.059326,62.607483],[21.544922,61.705322],[21.322327,60.720276],[22.290894,60.391907],[22.86969,59.846497],[24.496704,60.057312],[26.25531,60.423889],[28.070129,60.503479],[29.117676,60.028076],[27.981079,59.475525],[26.94928,59.445923],[25.864319,59.611084],[24.604309,59.465881],[23.339905,59.187317],[23.426697,58.612671],[24.061279,58.257507],[24.429077,58.383484],[24.312927,57.793518],[24.120728,57.025696],[23.318481,57.006287],[22.524475,57.753479],[21.581909,57.411926],[21.090515,56.783875],[21.055908,56.031128],[21.268494,55.190491],[19.888489,54.866089],[19.660706,54.426086],[18.696289,54.438721],[18.620911,54.682678],[17.622925,54.851685],[16.363525,54.513306],[14.802917,54.05072],[14.11969,53.75708],[13.647522,54.0755],[12.518494,54.47052],[11.956299,54.196472],[10.939514,54.008728],[10.950073,54.363708],[9.939697,54.59668],[9.921875,54.983093],[9.650085,55.470093],[10.370117,56.190125],[10.667908,56.081482],[10.912292,56.458679],[10.370117,56.610107],[10.250122,56.890076],[10.546082,57.215881],[10.580078,57.730103],[9.775696,57.447876],[9.4245,57.172119],[8.543518,57.110107],[8.256714,56.81012],[8.090088,56.5401],[8.1203,55.5177],[8.526306,54.962891],[8.572083,54.395691],[8.80072,54.020874],[8.121704,53.527893],[7.936279,53.748291],[7.100525,53.693909],[6.905273,53.4823],[6.07428,53.510498],[4.706116,53.091919],[3.830322,51.620483],[3.315125,51.345886],[2.513489,51.148499],[1.639099,50.946716],[1.338684,50.127319],[359.01062,49.347473],[358.066589,49.776489],[358.383484,48.64447],[356.704224,48.901672],[355.407715,48.684082],[355.508423,47.955078],[357.036804,47.570313],[357.774292,47.064514],[358.806213,46.014893],[358.615784,44.022705],[358.098694,43.422913],[356.482483,43.455872],[355.652222,43.403503],[354.588196,43.57428],[353.245483,43.567871],[352.02179,43.748474],[350.607117,43.026672],[351.015625,42.592896],[350.96521,41.880676],[351.009216,41.543518],[351.209229,41.184326],[351.231323,40.760681],[351.022705,40.159302],[350.951721,39.755127],[350.553101,39.39209],[350.473511,38.737488],[350.712524,38.358521],[351.159973,38.266296],[351.253906,37.651489],[351.101196,36.868896],[351.617188,36.978882],[352.144409,36.838318],[352.546326,37.0979],[353.479797,36.942871],[353.763306,36.367676],[354.133606,36.029907],[354.622925,35.946899],[355.004822,36.324707],[355.631104,36.677917],[356.58429,36.658875],[357.853577,36.674072],[358.561707,37.443115],[359.316589,37.642273],[359.532898,38.29248],[0.111328,38.738525],[359.721313,39.31012],[0.106689,40.124084],[0.721313,40.678284],[0.810486,41.014709],[2.091919,41.226074],[3.03949,41.89209],[2.986084,42.473083],[3.100525,43.075317],[4.556885,43.399719],[6.529297,43.128906],[7.435303,43.693909],[7.850891,43.767273],[8.428711,44.231323],[8.888916,44.366272],[9.702515,44.036316],[10.200073,43.920105],[10.512085,42.931519],[11.191895,42.35553],[12.106689,41.704529],[12.888123,41.253113],[13.628113,41.188293],[14.06073,40.786499],[14.703308,40.604675],[14.998474,40.173096],[15.413696,40.048279],[15.718872,39.544128],[16.109314,38.964478],[15.89209,38.750916],[15.68811,38.214722],[15.684082,37.908875],[16.101074,37.985901],[16.635071,38.843689],[17.052917,38.902893],[17.171509,39.424683],[16.44873,39.795471],[16.86969,40.442322],[17.738525,40.27771],[18.293518,39.810913],[18.480286,40.168884],[18.376709,40.355713],[17.519287,40.877075],[16.785095,41.179688],[15.889282,41.541077],[16.169922,41.740295],[15.926331,41.961304],[15.1427,41.955078],[14.029907,42.761108],[13.526917,43.587708],[12.589294,44.091492],[12.261475,44.600525],[12.383911,44.885498],[12.328674,45.381897],[13.141724,45.736694],[13.937683,45.591125],[13.715088,45.500305],[13.679504,45.484131],[13.657104,45.137085],[13.952271,44.802124],[14.258728,45.233887],[14.901672,45.076111],[14.920288,44.738525],[15.376282,44.317871],[15.1745,44.243286],[16.015503,43.507324],[16.930115,43.210083],[17.509888,42.850098],[18.450073,42.480103],[18.88208,42.281494],[19.162476,41.955078],[19.371887,41.877686],[19.5401,41.720093],[19.403687,41.409485],[19.319092,40.727295],[19.406128,40.250916],[19.960083,39.9151],[19.980103,39.695129],[20.150085,39.625122],[20.217712,39.340271],[20.730103,38.770081],[21.120117,38.310303],[21.295105,37.645081],[21.670105,36.845093],[22.490112,36.410095],[23.154297,36.422485],[22.775085,37.305115],[23.410095,37.410095],[23.115112,37.920105],[24.0401,37.65509],[24.025085,38.220093],[23.53009,38.510071],[22.973083,38.970886],[23.350098,39.190125],[22.84967,39.659302],[22.626282,40.256531],[22.814087,40.476074],[23.343079,39.961121],[23.900085,39.962097],[24.408081,40.125122],[23.714905,40.687073],[24.925903,40.947083],[25.447693,40.852478],[26.056885,40.824097],[26.043274,40.617676],[26.358093,40.1521],[27.192505,40.690674],[27.61908,40.999878],[28.806519,41.054871],[28.988525,41.299927],[28.115479,41.622925],[27.996704,42.007507],[27.673889,42.577881],[28.039124,43.293274],[28.558105,43.70752],[28.837891,44.913879],[29.141724,44.820313],[29.626526,45.035522],[29.603271,45.293274],[30.377686,46.032471],[30.748901,46.58313],[31.675293,46.706299],[31.74408,46.333496],[33.298706,46.080688],[33.588074,45.851685],[32.63092,45.519287],[32.454285,45.327515],[33.546875,45.034912],[33.326477,44.56488],[33.882507,44.361511],[35.240112,44.940125],[36.334717,45.113281],[36.53009,45.470093],[35.510071,45.410095],[35.020874,45.651306],[34.96228,46.273315],[35.82373,46.645874],[36.759888,46.69873],[37.42511,47.022278],[38.223694,47.102295],[39.121277,47.263489],[39.147705,47.044678],[37.673706,46.636719],[38.233093,46.240906],[37.40332,45.40448],[36.675476,45.24469],[37.539124,44.657288],[38.680115,44.28009],[39.955078,43.43512],[40.321472,43.128723],[40.875488,43.013672],[41.453491,42.645081],[41.703308,41.963074],[41.554077,41.535706],[40.373474,41.013672],[39.512695,41.102905],[38.347717,40.94873],[36.913086,41.33551],[35.167725,42.040283],[33.513306,42.019104],[32.348083,41.736328],[31.145874,41.087708],[29.240112,41.220093],[28.820129,40.460083],[27.28009,40.420105],[26.170898,39.463684],[26.804688,38.985901],[26.318298,38.20813],[27.048889,37.653503],[27.641296,36.658875],[28.73291,36.67688],[29.700073,36.144287],[30.391113,36.263123],[30.621704,36.677917],[31.699707,36.644287],[32.509277,36.107483],[34.026917,36.220093],[34.714478,36.795471],[35.551086,36.565491],[36.160889,36.650696],[35.782104,36.275085],[36.149902,35.821472],[35.90509,35.410095],[35.998474,34.644897],[35.979675,34.610107],[35.4823,33.905518],[35.126099,33.090881],[35.098511,33.080688],[34.955505,32.827515],[34.752686,32.072876],[34.488098,31.60553],[34.556519,31.548889],[34.265503,31.219482],[33.773499,30.967529],[32.993896,31.024109],[32.192505,31.260315],[31.96051,30.933716],[31.68811,31.429688],[30.976929,31.555908],[30.095093,31.473511],[29.683472,31.18689],[28.913513,30.870117],[28.4505,31.025879],[27.457703,31.321289],[26.4953,31.585693],[25.164917,31.569275],[24.921082,31.899475],[23.92749,32.016724],[23.609131,32.187317],[23.236877,32.191528],[22.895874,32.638489],[21.543091,32.843323],[20.854492,32.706909],[20.134094,32.238281],[19.820313,31.751892],[20.053284,30.985901],[19.574097,30.525879],[19.086487,30.266479],[18.021118,30.763489],[16.611694,31.182312],[15.713928,31.376282],[15.245728,32.265076],[13.918701,32.712097],[13.083313,32.878906],[12.66333,32.792908],[11.488892,33.137085],[11.108521,33.293274],[10.856873,33.768677],[10.339722,33.785889],[10.149719,34.330688],[10.807922,34.833496],[10.939514,35.699097],[10.593323,35.94751],[10.600098,36.410095],[11.100098,36.900085],[11.028931,37.092102],[10.180725,36.724121],[10.210083,37.230103],[9.510071,37.350098],[8.421082,36.946472],[7.737122,36.885681],[7.330505,37.11853],[6.261902,37.110718],[5.320129,36.716492],[4.815674,36.865112],[3.161682,36.783875],[1.466919,36.605713],[0.503906,36.301331],[359.87262,35.888672],[358.791382,35.714905],[357.830078,35.168518],[357.395691,35.179077],[356.359924,35.399902],[355.408997,35.330688],[354.806213,35.75531],[354.070007,35.760071],[353.755676,35.145874],[353.087524,34.110474],[352.345825,33.697083],[351.34259,33.240295],[350.69928,32.564697],[350.565186,32.038086],[350.185303,31.177673],[350.435181,29.933716],[349.600403,29.098694],[349.099121,28.832275],[348.311096,28.148682],[347.381226,28.03833],[346.860107,27.640076],[346.226196,26.618896],[345.56012,26.254517],[345.199097,25.636292],[345.175415,25.103516],[344.910706,24.520325],[344.573975,24.359131],[344.017395,23.723511],[343.673584,23.017883],[343.738098,22.679321],[343.410889,22.158325],[343.026794,21.885681],[342.979614,21.422302],[342.936584,20.999878],[343.463684,20.567871],[343.722229,20.092529],[343.622375,19.593872],[343.743103,19.09668],[343.853699,18.108521],[343.729492,17.167114],[343.450317,16.673889],[343.536987,16.135071],[343.299316,15.621521],[342.814819,14.919495],[342.375,14.729675],[342.873901,14.373474],[343.286316,13.595093],[343.158508,13.151489],[343.322571,12.384888],[343.38623,12.170898],[343.691101,11.958679],[343.685303,11.806519],[343.914795,11.524719],[344.335815,11.458496],[344.86969,11.040527],[345.160522,10.876709],[345.306824,10.656311],[345.420288,10.214478],[345.669922,10.015686],[345.926025,9.886292],[346.314819,9.494873],[346.753479,8.903076],[346.875977,8.163879],[347.051025,7.798706],[347.571899,7.262878],[348.291809,6.860107],[348.561218,6.785889],[349.234619,6.140686],[350.086609,5.593689],[350.995178,4.83252],[352.025879,4.355896],[352.287903,4.364685],[352.481079,4.338318],[353.471313,4.705078],[354.165588,4.993713],[355.350098,5.168274],[355.991211,5.179871],[356.688904,4.984314],[357.143921,4.994507],[358.035278,4.71051],[358.936401,5.000488],[359.492371,5.343506],[1.06012,5.928894],[1.865295,6.142273],[2.691711,6.258911],[3.57428,6.258301],[4.325684,6.270691],[5.033691,5.611877],[5.362915,4.888123],[5.898315,4.262512],[6.69812,4.240723],[7.082703,4.464722],[7.462097,4.412109],[8.500305,4.772095],[8.488892,4.495728],[8.744873,4.352295],[8.94812,3.904114],[9.40448,3.734497],[9.795288,3.073486],[9.649292,2.283875],[9.305725,1.160889],[9.49292,1.010071],[9.291321,0.268677],[9.048523,-0.45929],[8.830078,-0.778992],[8.798096,-1.111328],[9.405273,-2.144287],[10.066284,-2.969482],[11.093689,-3.978821],[11.9151,-5.037903],[12.182312,-5.789917],[12.32251,-6.100098],[12.227478,-6.294373],[12.728271,-6.927124],[12.933105,-7.596497],[13.236511,-8.562622],[12.929077,-8.959106],[12.875488,-9.16687],[13.121094,-9.766907],[13.387329,-10.373596],[13.686523,-10.731079],[13.738708,-11.297791],[13.633728,-12.038574],[13.312927,-12.483582],[12.738525,-13.137878],[12.500122,-13.547729],[12.17572,-14.449097],[12.123718,-14.878296],[11.778687,-15.793823],[11.640076,-16.673096],[11.734314,-17.30188],[11.794922,-18.069092],[12.608704,-19.045288],[12.826904,-19.673096],[13.352478,-20.872803],[13.868713,-21.698975],[14.25769,-22.111206],[14.385681,-22.656677],[14.408081,-23.853027],[14.743286,-25.392883],[14.989685,-26.11731],[15.21051,-27.090881],[15.601929,-27.821228],[16.345093,-28.576721],[17.062927,-29.875977],[17.064514,-29.878601],[17.566895,-30.725708],[18.22168,-31.661621],[18.247925,-32.429077],[17.925293,-32.611206],[18.250122,-33.281372],[18.244507,-33.867676],[18.377502,-34.136475],[18.424683,-33.997803],[18.855286,-34.444275],[19.193298,-34.462585],[19.616516,-34.819092],[20.071289,-34.795105],[20.689087,-34.417175],[21.542908,-34.258789],[22.57428,-33.864075],[22.988281,-33.916382],[23.594116,-33.794495],[24.677917,-33.987183],[25.172913,-33.796875],[25.780701,-33.94458],[25.909729,-33.666992],[26.419495,-33.614929],[27.464722,-33.22699],[28.219727,-32.771912],[28.925476,-32.171997],[30.055725,-31.140198],[30.622925,-30.423706],[30.901672,-29.909912],[31.325684,-29.401978],[31.521118,-29.257385],[32.203491,-28.75238],[32.46228,-28.301025],[32.580322,-27.470093],[32.830078,-26.742188],[32.916077,-26.215881],[32.660278,-26.148499],[32.574707,-25.727295],[33.013306,-25.357483],[34.215881,-24.816284],[35.04071,-24.478271],[35.458679,-24.12262],[35.607483,-23.706482],[35.371887,-23.535278],[35.533875,-23.070801],[35.562683,-22.090027],[35.385925,-22.140015],[35.373474,-21.84082],[35.176086,-21.254272],[34.701904,-20.497009],[34.786499,-19.783997],[35.198486,-19.552795],[35.896484,-18.842285],[36.281311,-18.659607],[37.411072,-17.586304],[38.53833,-17.101013],[39.452698,-16.720886],[40.089294,-16.100708],[40.477295,-15.406311],[40.775513,-14.691711],[40.59967,-14.201904],[40.560913,-12.639099],[40.437317,-11.761719],[40.478516,-10.765381],[40.316711,-10.317078],[39.949707,-10.098389],[39.535889,-9.112305],[39.186523,-8.485474],[39.252075,-8.007812],[39.194702,-7.703918],[39.470093,-7.099976],[39.440125,-6.840027],[38.799683,-6.475586],[38.740479,-5.908875],[39.202271,-4.676697],[39.604919,-4.346497],[39.80011,-3.681091],[40.121277,-3.27771],[40.263123,-2.57312],[40.637878,-2.499817],[40.884888,-2.08252],[41.585083,-1.683228],[41.811096,-1.446411],[42.041687,-0.919189],[43.136108,0.292297],[44.068298,1.052917],[45.564087,2.045898],[46.56488,2.855286],[47.740906,4.219482],[48.594482,5.339111],[49.452698,6.804688],[50.070923,8.081726],[50.55249,9.19873],[50.83429,10.279724],[51.045288,10.64093],[51.041504,11.166504],[51.133911,11.748291],[51.111328,12.024719],[50.732117,12.021912],[50.258911,11.679688],[49.728699,11.578918],[49.267883,11.430481],[48.948303,11.410706],[48.378906,11.375488],[48.021729,11.193115],[47.525696,11.127319],[46.645508,10.816528],[45.556885,10.69812],[44.614319,10.442322],[44.11792,10.445679],[43.666687,10.864319],[43.470703,11.27771],[43.145325,11.462097],[42.715881,11.735718],[43.286499,11.974915],[43.317871,12.390076],[43.081299,12.699707],[42.589722,13.000488],[42.276917,13.344116],[41.734924,13.921082],[41.179321,14.491089],[39.81427,15.43573],[39.266113,15.922729],[38.990723,16.840698],[38.410095,17.998291],[37.862671,18.36792],[37.481873,18.614075],[37.114685,19.808105],[36.969482,20.837524],[37.188721,21.018921],[36.866272,22.000122],[36.690674,22.204895],[35.526123,23.102478],[35.493713,23.752502],[35.692505,23.926697],[34.795105,25.033875],[34.473877,25.598694],[34.104675,26.142273],[33.348877,27.69989],[32.734924,28.705322],[32.320496,29.760498],[32.423279,29.851074],[33.136902,28.417725],[33.588074,27.971497],[33.921509,27.648682],[34.15448,27.823303],[34.426697,28.344116],[34.641724,29.099487],[34.922729,29.501282],[34.956116,29.356689],[34.832275,28.95752],[34.787903,28.607483],[34.632324,28.058472],[35.13031,28.063477],[35.64032,27.376526],[36.249084,26.570129],[36.639709,25.826294],[36.931702,25.603088],[37.209473,25.084473],[37.154907,24.858521],[37.483704,24.285522],[38.023926,24.078674],[38.49292,23.688477],[39.066284,22.579712],[39.023682,21.986877],[39.139526,21.29187],[39.801697,20.338928],[40.247681,20.174683],[40.93927,19.486511],[41.221497,18.671692],[41.754517,17.83313],[42.270874,17.47467],[42.348083,17.075928],[42.649719,16.774719],[42.77948,16.3479],[42.82373,15.911682],[42.702515,15.718872],[42.805115,15.262085],[42.604919,15.213318],[42.892273,14.802307],[43.088074,14.062683],[43.251526,13.7677],[43.2229,13.220886],[43.483093,12.636902],[44.17511,12.585876],[44.49469,12.72168],[44.989685,12.699707],[45.144287,12.953918],[45.406494,13.026917],[45.625122,13.291077],[45.877686,13.3479],[46.717102,13.399719],[47.354492,13.592285],[47.938904,14.007324],[48.239075,13.94812],[48.679321,14.003296],[49.574707,14.708679],[51.172485,15.175293],[52.168274,15.597473],[52.191711,15.938477],[52.385315,16.382507],[53.108704,16.651123],[53.570496,16.707703],[54.239319,17.045105],[54.791077,16.950684],[55.274902,17.228271],[55.270081,17.632324],[55.661499,17.884277],[56.283508,17.876099],[56.512329,18.087097],[56.60968,18.57428],[57.234314,18.94812],[57.694519,18.944702],[57.788696,19.067688],[57.665894,19.736084],[57.826477,20.243103],[58.034302,20.481506],[58.488098,20.429077],[58.861084,21.114075],[59.282471,21.433899],[59.442322,21.714478],[59.806274,22.310486],[59.808105,22.533691],[59.450073,22.660278],[59.180481,22.992493],[58.729309,23.565674],[58.137085,23.747925],[57.403503,23.878723],[56.845276,24.241699],[56.396912,24.924683],[56.261108,25.714722],[56.391479,25.896118],[56.485718,26.309082],[56.362122,26.395874],[56.070923,26.055481],[55.439087,25.439087],[54.693115,24.797913],[54.008118,24.121887],[53.404114,24.151306],[52.577087,24.17749],[51.794495,24.019897],[51.757507,24.294128],[51.579529,24.245483],[51.389709,24.627502],[51.606689,25.215698],[51.589111,25.801086],[51.286499,26.114685],[51.013489,26.00708],[50.743896,25.482483],[50.81012,24.754883],[50.660706,24.999878],[50.527527,25.327881],[50.239929,25.608093],[50.113281,25.944092],[50.213074,26.2771],[50.152527,26.689697],[49.470886,27.110107],[49.299683,27.461304],[48.807678,27.689697],[48.416077,28.552124],[48.093872,29.306274],[48.183289,29.534485],[47.974487,29.975891],[48.568115,29.92688],[48.941284,30.317078],[49.576904,29.985718],[50.115112,30.147888],[50.853088,28.814514],[51.520874,27.865723],[52.483704,27.580872],[53.493103,26.8125],[54.715088,26.480713],[55.723694,26.964722],[56.492126,27.143311],[56.970886,26.966125],[57.397278,25.739929],[58.525879,25.610107],[59.616089,25.380127],[61.497498,25.078308],[62.905701,25.218506],[64.530518,25.237122],[66.372925,25.425293],[67.145508,24.663696],[67.443726,23.944885],[68.176697,23.692078],[69.34967,22.843323],[69.644897,22.450684],[69.164124,22.089294],[70.47052,20.877319],[71.175293,20.757507],[72.630676,21.356079],[72.824524,20.419495],[72.820923,19.208313],[73.119873,17.928711],[73.534302,15.990723],[74.443909,14.61731],[74.616699,13.992676],[74.864929,12.741882],[75.396118,11.781311],[75.746521,11.308289],[76.130127,10.299683],[76.593079,8.899292],[77.539917,7.965515],[77.941284,8.25293],[78.278076,8.933105],[79.189697,9.216675],[78.885498,9.546082],[79.340515,10.308899],[79.858093,10.3573],[79.862488,12.056274],[80.286316,13.006287],[80.233276,13.835876],[80.025085,15.136475],[80.32489,15.899292],[80.792114,15.952087],[81.692688,16.310303],[82.191284,16.556702],[82.192871,17.016724],[83.18927,17.671326],[83.941101,18.302124],[85.060303,19.478699],[86.499329,20.151672],[87.033081,20.743286],[86.975708,21.495483],[88.208496,21.703308],[88.888916,21.690674],[89.032104,22.055725],[89.418884,21.966309],[89.702087,21.857117],[89.847473,22.039124],[90.272888,21.836487],[90.587097,22.392883],[90.496094,22.805115],[91.417114,22.765076],[91.8349,22.182922],[92.02533,21.701721],[92.082886,21.192322],[92.36853,20.670898],[93.078308,19.855286],[93.66333,19.727112],[93.541077,19.366516],[94.32489,18.213501],[94.533508,17.277283],[94.188904,16.038086],[94.808472,15.803528],[95.369324,15.714478],[96.50592,16.427307],[97.164673,16.928711],[97.597107,16.100708],[97.77771,14.83728],[98.103699,13.640503],[98.509705,13.122498],[98.428284,12.033081],[98.764526,11.441284],[98.457275,10.675293],[98.553528,9.933105],[98.259277,8.973877],[98.150085,8.350098],[98.339722,7.794495],[98.503906,8.382324],[98.988281,7.908081],[99.519714,7.343506],[99.690674,6.848328],[100.085876,6.464478],[100.306274,6.04071],[100.196716,5.3125],[100.557495,4.767273],[100.695496,3.939087],[101.273682,3.270325],[101.390686,2.760925],[102.57373,1.967102],[103.519714,1.226318],[104.228882,1.293091],[104.247925,1.631287],[103.854675,2.515503],[103.502502,2.791077],[103.429504,3.382874],[103.332092,3.726685],[103.438721,4.181702],[103.381287,4.855103],[102.961731,5.524475],[102.371277,6.128296],[102.141296,6.22168],[101.623108,6.740723],[101.017273,6.856873],[100.45929,7.429687],[100.279724,8.295288],[99.873901,9.207886],[99.222473,9.239319],[99.153687,9.963074],[99.478882,10.846497],[100.018677,12.307129],[100.0979,13.406921],[100.978516,13.41272],[100.831909,12.627075],[101.687073,12.645874],[102.585083,12.186707],[103.090698,11.153687],[103.497314,10.63269],[104.334473,10.486694],[105.076294,9.918518],[104.795288,9.241089],[105.158325,8.59967],[106.40509,9.530884],[107.220886,10.364502],[108.366089,11.008301],[109.200073,11.66687],[109.335327,13.426086],[108.877075,15.276672],[108.26947,16.079712],[107.361877,16.69751],[106.42688,18.004089],[105.662109,19.058289],[105.881714,19.752075],[106.715088,20.696899],[108.050293,21.55249],[108.522888,21.715271],[109.864502,21.395081],[109.627686,21.008301],[109.889893,20.282471],[110.444092,20.341125],[110.785522,21.397278],[111.843689,21.550476],[113.241089,22.051514],[113.806885,22.548279],[114.152527,22.223877],[114.763916,22.668091],[115.890686,22.782898],[117.281677,23.624512],[118.656921,24.547485],[119.58551,25.740906],[120.395508,27.053284],[121.125671,28.135681],[121.684509,28.225525],[121.938477,29.018127],[122.092102,29.83252],[121.503479,30.142883],[121.264282,30.676331],[121.891907,30.94928],[121.908081,31.692322],[121.229126,32.460327],[120.620483,33.376709],[120.227478,34.360474],[119.151306,34.909912],[119.664673,35.609924],[120.637085,36.111511],[121.104309,36.651306],[122.520081,36.930725],[122.35791,37.454529],[121.711304,37.481079],[120.823486,37.870483],[119.702881,37.156494],[118.911682,37.448486],[118.878296,37.897278],[118.059692,38.061523],[117.532715,38.737671],[118.042725,39.204285],[119.023499,39.252319],[119.639709,39.898071],[120.768677,40.593506],[121.640503,40.946472],[122.168701,40.422485],[121.376892,39.750305],[121.586121,39.360901],[121.054688,38.897522],[122.131531,39.170471],[122.867676,39.637878],[124.265686,39.928528],[124.737488,39.660278],[125.321106,39.551514],[125.386719,39.387878],[125.132874,38.848694],[125.221924,38.665894],[124.986084,38.548523],[124.71228,38.108276],[124.981079,37.948914],[125.240112,37.8573],[125.27533,37.669128],[125.568481,37.752075],[125.689087,37.940125],[126.174683,37.749695],[126.860291,36.893921],[126.117493,36.725525],[126.559326,35.684692],[126.373901,34.934692],[126.485718,34.390076],[127.386475,34.475708],[128.185913,34.890503],[129.091492,35.08252],[129.468323,35.63208],[129.46051,36.784302],[129.212891,37.432495],[128.34967,38.612305],[127.783325,39.050903],[127.385498,39.213501],[127.502075,39.323914],[127.533508,39.756897],[127.967529,40.025513],[128.633484,40.18988],[129.010498,40.485474],[129.18811,40.661926],[129.705322,40.882874],[129.66748,41.601074],[129.965881,41.941284],[130.400085,42.28009],[130.78009,42.220093],[130.935913,42.552673],[132.278076,43.284485],[132.906311,42.798523],[133.536926,42.811523],[134.869507,43.398315],[135.51532,43.989075],[136.862305,45.143494],[138.219727,46.307922],[138.554688,46.999695],[140.062073,48.446716],[140.513123,50.045471],[140.597473,51.239685],[141.379272,52.238892],[141.345276,53.089722],[139.901489,54.189697],[138.804688,54.2547],[138.164673,53.755127],[137.193481,53.977295],[136.701721,54.603699],[135.126282,54.729675],[138.958496,57.088074],[142.197876,59.0401],[145.487305,59.336487],[148.544922,59.16449],[149.783691,59.655701],[151.338074,59.504089],[151.265686,58.780884],[152.81189,58.883911],[155.043884,59.145081],[154.218079,59.758301],[156.720703,61.434509],[159.302307,61.774109],[160.121521,60.544312],[162.657898,61.642517],[163.258484,62.466309],[164.473694,62.55072],[163.669678,61.14093],[161.87207,60.343079],[160.150696,59.31488],[158.364319,58.055725],[156.810486,57.832092],[156.758301,57.364685],[155.91449,56.767883],[155.433716,55.381104],[155.991882,53.158875],[156.420105,51.700073],[156.789917,51.011108],[158.231323,51.942688],[158.530884,52.958679],[160.021729,53.202698],[160.368896,54.344482],[162.117493,54.855286],[161.701477,55.285706],[162.1297,56.122314],[163.057922,56.159302],[163.191895,57.615112],[162.053101,57.839111],[162.017273,58.243286],[163.217102,59.211121],[163.539307,59.868713],[164.876892,59.731689],[165.840088,60.160095],[166.295105,59.788696],[168.900513,60.573486],[170.330872,59.881897],[170.698486,60.336304],[172.150085,60.950073],[173.680115,61.65271],[174.569275,61.769287],[177.364319,62.521912],[179.228271,62.304077],[179.486511,62.569092],[179.370483,62.982727],[178.908325,63.252075],[178.31311,64.075928],[177.411316,64.608276],[178.707275,64.534912],[179.99292,64.974304],[180,64.979584],[180,61.875],[180,56.25],[180,50.625],[180,45],[180,39.375],[180,33.75],[180,28.125],[180,22.5],[180,16.875],[180,11.25],[180,5.625],[180,0],[180,-5.625],[180,-11.25],[180,-16.067133],[179.413509,-16.379054],[179.096609,-16.433984],[178.596839,-16.63915],[178.725059,-17.012042],[179.364143,-16.801354],[180,-16.555217],[180,-16.875],[180,-22.5],[180,-28.125],[180,-33.75],[180,-39.375],[180,-45],[180,-50.625],[180,-56.25],[180,-61.875],[180,-67.5],[180,-73.125],[180,-78.75],[180,-84.375],[180,-84.71338],[178.277212,-84.472518],[175.985672,-84.158997],[173.224083,-84.41371],[172.477049,-84.117914],[172.283934,-84.041433],[169.404782,-83.825891],[168.895665,-83.335998],[166.604126,-83.022477],[165.095949,-82.708956],[163.705336,-82.395435],[162.490992,-82.062278],[161.629287,-81.690001],[161.120016,-81.278501],[159.788211,-80.945395],[160.316964,-80.573066],[160.747894,-80.200737],[160.924162,-79.730482],[161.766385,-79.162248],[163.666217,-79.123025],[165.193876,-78.907483],[166.995781,-78.750748],[166.604126,-78.319611],[164.743464,-78.182514],[164.273363,-77.82977],[164.057873,-77.457442],[163.489897,-77.065579],[163.47026,-76.693302],[163.568239,-76.24258],[163.822797,-75.870303],[164.234193,-75.458804],[164.958851,-75.145283],[165.644391,-74.772954],[166.094803,-74.38104],[167.387489,-74.165498],[167.975101,-73.812806],[169.287321,-73.65602],[169.75737,-73.24452],[170.109958,-72.891829],[170.560422,-72.441159],[171.089227,-72.088415],[171.20679,-71.696501],[170.501665,-71.402617],[169.463589,-71.20666],[168.425616,-70.971481],[167.309095,-70.834332],[166.11444,-70.755938],[164.919681,-70.775524],[163.842434,-70.716768],[162.686897,-70.736353],[161.570479,-70.579618],[160.80665,-70.226875],[159.670699,-69.991747],[159.181013,-69.599833],[158.025528,-69.482269],[156.811132,-69.384291],[155.92979,-69.149215],[155.165857,-68.835642],[154.284567,-68.561292],[153.638199,-68.894502],[152.502247,-68.874813],[151.483705,-68.71813],[150.132314,-68.561292],[148.839629,-68.385024],[147.723263,-68.130259],[146.646067,-67.895131],[145.999699,-67.601196],[146.195552,-67.228867],[145.490427,-66.915346],[144.374061,-66.837004],[143.061842,-66.797782],[142.121692,-66.817367],[140.809421,-66.817367],[139.908442,-66.876175],[138.596223,-66.895761],[137.460271,-66.954568],[136.618049,-66.778197],[136.206705,-66.44509],[135.873805,-66.033591],[135.697485,-65.582869],[135.070753,-65.308571],[135.031582,-65.72007],[134.757387,-66.209963],[133.85646,-66.288304],[132.935896,-66.386283],[131.799945,-66.386283],[130.781454,-66.425505],[129.704259,-66.58224],[128.80328,-66.758611],[127.882768,-66.660633],[127.001427,-66.562654],[126.100396,-66.562654],[125.160247,-66.719389],[124.122274,-66.621462],[123.221296,-66.484261],[122.320369,-66.562654],[121.654415,-66.876175],[120.871,-67.189696],[119.832924,-67.268089],[118.57946,-67.170111],[117.384701,-66.915346],[116.699161,-66.660633],[115.602381,-66.699804],[114.897308,-66.386283],[114.388088,-66.072762],[113.604673,-65.876805],[112.860378,-66.092347],[111.74396,-66.13157],[111.058472,-66.425505],[110.235835,-66.699804],[109.15864,-66.837004],[108.081393,-66.954568],[107.160881,-66.954568],[106.181561,-66.934931],[104.90846,-66.327527],[104.242557,-65.974783],[103.478676,-65.700485],[102.832411,-65.563284],[101.578896,-66.30789],[100.893356,-66.58224],[100.384188,-66.915346],[99.718182,-67.248504],[98.68021,-67.111303],[97.759646,-67.248504],[96.682399,-67.248504],[95.781472,-67.385653],[95.017591,-67.170111],[94.17542,-67.111303],[93.548637,-67.209282],[92.608539,-67.189696],[91.5901,-67.111303],[90.630365,-67.228867],[89.67063,-67.150474],[88.828408,-66.954568],[88.358411,-66.484261],[87.986289,-66.209911],[87.477017,-66.876175],[86.752359,-67.150474],[85.655527,-67.091718],[84.676206,-67.209282],[83.775331,-67.30726],[82.776426,-67.209282],[82.051767,-67.366068],[81.483792,-67.542388],[80.93535,-67.875546],[80.093127,-68.071503],[79.113859,-68.326216],[78.428371,-68.698441],[78.134539,-69.07077],[77.644904,-69.462684],[76.626465,-69.619419],[75.62756,-69.737034],[74.491557,-69.776205],[73.864877,-69.874183],[73.33602,-70.364024],[73.08141,-70.716768],[72.454627,-71.010703],[71.906288,-71.324224],[71.573285,-71.696501],[71.024895,-72.088415],[69.869307,-72.264787],[68.71377,-72.166808],[67.949889,-71.853287],[68.419989,-71.441788],[68.929157,-71.069459],[69.066307,-70.677545],[67.949889,-70.697182],[67.81274,-70.305268],[68.596258,-69.93294],[69.555941,-69.678226],[69.673453,-69.227556],[69.712624,-68.972791],[68.890038,-67.934302],[67.891133,-67.934302],[66.911864,-67.855909],[65.971715,-67.738345],[64.992447,-67.620729],[64.052349,-67.405239],[63.19049,-67.816738],[62.387489,-68.012695],[61.427806,-67.953887],[60.605221,-67.679589],[59.939318,-67.405239],[58.744508,-67.287675],[58.137361,-67.013324],[57.255968,-66.680218],[57.158093,-66.249133],[56.355041,-65.974783],[55.414943,-65.876805],[54.53355,-65.818049],[53.613038,-65.89639],[52.614133,-66.053176],[51.791547,-66.249133],[50.949325,-66.523484],[50.753471,-66.876175],[49.930885,-67.111303],[48.990736,-67.091718],[48.344419,-67.366068],[47.44344,-67.718759],[46.503343,-67.601196],[45.719928,-67.816738],[44.897291,-68.051866],[44.113876,-68.267408],[42.938702,-68.463313],[41.959434,-68.600514],[40.921358,-68.933621],[40.020431,-69.109941],[39.667894,-69.541077],[38.649404,-69.776205],[37.905108,-69.52144],[37.200035,-69.168748],[36.16201,-69.247142],[35.300202,-69.012014],[34.908495,-68.659271],[33.870419,-68.502588],[33.302443,-68.835642],[32.754053,-69.384291],[31.990172,-69.658641],[30.971733,-69.75662],[30.031583,-69.93294],[29.150242,-70.20729],[28.09258,-70.324854],[27.093726,-70.462055],[25.977309,-70.48164],[24.841357,-70.48164],[23.666184,-70.520811],[22.569403,-70.697182],[21.923034,-70.403247],[21.452985,-70.07014],[20.375739,-70.011333],[19.259373,-69.893769],[18.201711,-69.874183],[17.026589,-69.913354],[15.949342,-70.030918],[15.126757,-70.403247],[14.734998,-70.030918],[13.422778,-69.972162],[12.404287,-70.246512],[11.953824,-70.638375],[10.817821,-70.834332],[10.249845,-70.48164],[9.525135,-70.011333],[8.48711,-70.148534],[7.742866,-69.893769],[7.13572,-70.246512],[6.273912,-70.462055],[5.157546,-70.618789],[4.139055,-70.853917],[3.022638,-70.991118],[1.886686,-71.128267],[0.868195,-71.304639],[359.771363,-71.637745],[359.340511,-71.226246],[358.204508,-71.167438],[356.951019,-71.285053],[355.658333,-71.461373],[354.463625,-71.402617],[354.209015,-71.030289],[353.131768,-70.93231],[352.622549,-71.324224],[352.583378,-71.696501],[351.388619,-71.65733],[350.898985,-71.324224],[349.704226,-71.265416],[348.979567,-71.539767],[348.489933,-72.010074],[347.706492,-72.401936],[346.688027,-72.715457],[345.591195,-72.950585],[344.553145,-73.146542],[343.887216,-73.460114],[343.53468,-73.871614],[344.59229,-74.106742],[344.298509,-74.498604],[343.358411,-74.79254],[342.477018,-75.125698],[341.086457,-75.439218],[339.989625,-75.674346],[338.775306,-75.909474],[337.541402,-76.105431],[336.072448,-76.24258],[334.525178,-76.281803],[333.839664,-76.360144],[332.488248,-76.497345],[331.117221,-76.673665],[330.216268,-77.065579],[329.001949,-77.359515],[327.787631,-77.65345],[326.103237,-77.888526],[324.673454,-78.123654],[324.22299,-78.339248],[324.085893,-79.083855],[324.360088,-79.456132],[326.318676,-79.456132],[328.375192,-79.299397],[330.314195,-79.260226],[330.314195,-79.632503],[330.745099,-79.985195],[331.450198,-80.337938],[329.902902,-80.592651],[327.689704,-80.769023],[325.613603,-80.906172],[323.73333,-81.121715],[321.755182,-81.337309],[319.228567,-81.356894],[317.83798,-81.65083],[317.191637,-82.081915],[315.174292,-81.846735],[312.726069,-81.709586],[310.23865,-81.729171],[308.456356,-82.003521],[306.380229,-82.258235],[304.637106,-82.571755],[302.991883,-82.865691],[301.777513,-83.218434],[301.287879,-82.846106],[300.308584,-82.37585],[298.447974,-82.042692],[296.74397,-81.748757],[294.295721,-81.474458],[291.808354,-81.317672],[289.986837,-81.004151],[288.557054,-80.69063],[286.755148,-80.416331],[284.639903,-80.259545],[283.366776,-79.887216],[283.151363,-79.514939],[281.976215,-79.181833],[282.015334,-78.789918],[282.074142,-78.378419],[283.5039,-78.123654],[285.227464,-78.221633],[286.343881,-77.908112],[285.717124,-77.55542],[284.600706,-77.28107],[283.073021,-77.104802],[282.75963,-76.712887],[284.444023,-76.712887],[286.030464,-76.634494],[287.793224,-76.673665],[289.399276,-76.634494],[290.202276,-76.222995],[291.553718,-76.007452],[292.807182,-75.79191],[294.139013,-75.635124],[295.647164,-75.262847],[296.25431,-74.92974],[296.704799,-74.576997],[298.03663,-74.439848],[298.624191,-74.106742],[299.172633,-73.695242],[299.309731,-73.166179],[298.996339,-72.774265],[298.918023,-72.382351],[298.624191,-72.010074],[298.487094,-71.089045],[298.193339,-70.716768],[297.723264,-70.383661],[297.429484,-69.991747],[297.214045,-69.619419],[296.8027,-69.227556],[296.038897,-68.913984],[295.216285,-68.678908],[294.687455,-68.365335],[294.334918,-67.953887],[294.491575,-67.58161],[295.118307,-67.150474],[295.705894,-66.837004],[296.25431,-66.503847],[297.194433,-66.425505],[297.879921,-66.190326],[297.409872,-65.857219],[297.351142,-65.484942],[297.48824,-65.09303],[297.9779,-64.799094],[298.702584,-64.54433],[299.388072,-64.309202],[300.210658,-64.211223],[300.954927,-64.36801],[301.385857,-64.152467],[302.40427,-63.858532],[302.776418,-63.525425],[302.188857,-63.27066],[301.405443,-63.388224],[300.837415,-63.701745],[300.112731,-63.95651],[299.290145,-64.074074],[298.585072,-64.270031],[297.958314,-64.583552],[296.998606,-64.642308],[296.371848,-64.897073],[295.823458,-65.171423],[295.431724,-65.602506],[294.628673,-65.89639],[293.943185,-66.209963],[293.296816,-66.58224],[292.748452,-66.876175],[292.258817,-67.326845],[292.37633,-67.718759],[292.572157,-68.149844],[292.4155,-68.541707],[292.023767,-68.953206],[291.553718,-69.325535],[291.455791,-69.717397],[291.514548,-70.109311],[291.769157,-70.462055],[292.082523,-70.853917],[292.43506,-71.245831],[292.748452,-71.637745],[292.865964,-72.049244],[292.630939,-72.480329],[292.043378,-72.79385],[291.064084,-73.009393],[289.790958,-73.146542],[288.380785,-73.264157],[287.166467,-73.401307],[286.147976,-73.65602],[285.109951,-73.871614],[283.778121,-73.969541],[283.092633,-73.636434],[282.074142,-73.420892],[280.703114,-73.518871],[279.704209,-73.126956],[279.312553,-73.4797],[278.529087,-73.851977],[277.334354,-73.636434],[276.120009,-73.518871],[274.807764,-73.4797],[273.985178,-73.087786],[272.731663,-73.185764],[271.576049,-73.009393],[270.773049,-72.558722],[269.911267,-73.322914],[268.579436,-73.401307],[267.560997,-73.166179],[266.327093,-73.283743],[264.956039,-73.4797],[263.663405,-73.616849],[262.311963,-73.558041],[261.881111,-73.20535],[260.86262,-72.911414],[259.687472,-72.754679],[258.39476,-72.813436],[257.082515,-72.754679],[256.318711,-72.61753],[256.671248,-73.362084],[256.886687,-73.734413],[257.454663,-74.106742],[258.747297,-74.185083],[259.236957,-74.537826],[259.8833,-74.870933],[259.354469,-75.302018],[257.983493,-75.125698],[256.632051,-74.988497],[255.123926,-74.949326],[253.850852,-75.125698],[252.440654,-75.184454],[251.285091,-74.910103],[249.933675,-74.79254],[248.738941,-74.420263],[247.700917,-74.714198],[247.054548,-74.38104],[246.702012,-74.028348],[246.055669,-73.714828],[244.978448,-74.067519],[243.783688,-74.243891],[242.530199,-74.028348],[241.315855,-74.185083],[240.29744,-74.479019],[238.926387,-74.518241],[237.437848,-74.498604],[235.988504,-74.479019],[234.597918,-74.518241],[233.109378,-74.420263],[231.757962,-74.322284],[230.445716,-74.459433],[229.074689,-74.479019],[227.742832,-74.302699],[226.254346,-74.439848],[225.568806,-74.361455],[224.785417,-74.302699],[223.571099,-74.518241],[222.4938,-74.733783],[221.14241,-74.968911],[219.790993,-75.06689],[218.361236,-75.086475],[217.205647,-75.34124],[215.677963,-75.537197],[215.090376,-75.204039],[213.79769,-75.380411],[213.503909,-75.733154],[213.856472,-76.105431],[213.895591,-76.47776],[212.387517,-76.575738],[211.251514,-76.908845],[209.99805,-77.183143],[208.66622,-77.398737],[207.079753,-77.496664],[206.257168,-77.065579],[204.670624,-77.202728],[203.025427,-77.300759],[202.124526,-76.987238],[201.634866,-76.889207],[201.948232,-78.025676],[202.731698,-78.378419],[204.024332,-78.69194],[204.670624,-79.064269],[206.609678,-79.162248],[208.411584,-79.299397],[210.468099,-79.358205],[211.937053,-79.652089],[213.229714,-79.926439],[213.582251,-80.337938],[212.77925,-80.671045],[211.134002,-81.043373],[209.351707,-81.337309],[207.902338,-81.004151],[205.591213,-81.160937],[203.16255,-81.102129],[204.70982,-81.41565],[205.473701,-81.768394],[207.138483,-82.042692],[207.334363,-82.454192],[206.962241,-82.82652],[206.590093,-83.23802],[206.413799,-83.68869],[209.097072,-83.904232],[209.939268,-84.296146],[213.170932,-84.531274],[217.107721,-84.570497],[216.892282,-85.040752],[214.111082,-85.315102],[211.466927,-85.609038],[209.057901,-85.295517],[204.807747,-85.09956],[201.92862,-85.37391],[198.070225,-85.138731],[195.817856,-84.82521],[192.977901,-84.570497],[191.469801,-84.23739],[191.000011,-84.117914],[190.048777,-83.884647],[187.110894,-84.061019],[186.883441,-84.117914],[185.617497,-84.534323],[184.170118,-84.117914],[184.065899,-84.101591],[183.915327,-84.099259],[183.769697,-84.143203],[183.476048,-84.231811],[183.138007,-84.333812],[182.859193,-84.417941],[182.743228,-84.452933],[180.941323,-84.139412],[180.057501,-84.721443],[180,-84.71338],[180,-84.375],[180,-78.75],[180,-73.125],[180,-67.5],[180,-61.875],[180,-56.25],[180,-50.625],[180,-45],[180,-39.375],[180,-33.75],[180,-28.125],[180,-22.5],[180,-16.875],[180,-16.555217],[180.082631,-16.501783],[180.20668,-16.020882],[180,-16.067133],[180,-11.25],[180,-5.625],[180,0],[180,5.625],[180,11.25],[180,16.875],[180,22.5],[180,28.125],[180,33.75],[180,39.375],[180,45],[180,50.625],[180,56.25],[180,61.875],[180,64.979709],[180.56732,65.40411],[180.11623,65.87456],[181.31389,66.11211],[181.09668,65.74044],[181.64007,65.39052],[182.77734,65.52024],[183.79284,65.35667],[184.01647,64.92288],[185.34608,64.63125],[186.10816,64.2826],[187.04467,64.25269],[187.445,64.46079],[187.46975,65.43791],[189.10893,65.54139],[190.10042,65.97724],[188.14269,66.91308],[185.42818,67.06219],[185.66017,66.33556],[184.98575,66.58435],[185.07175,67.20589],[182.45,68.2],[180,68.963636],[180,70.832199],[181.30622,70.89302],[182.336425,71.13277],[182.422055,71.26948],[180.97567,71.55553],[180.12813,71.55762],[180,71.515714],[180,73.125],[180,78.75],[180,84.375],[180,90],[185.625,90],[191.25,90],[196.875,90],[202.5,90],[208.125,90],[213.75,90],[219.375,90],[225,90],[230.625,90],[236.25,90],[241.875,90],[247.5,90],[253.125,90],[258.75,90],[264.375,90],[270,90],[275.625,90],[281.25,90],[286.875,90],[292.5,90],[298.125,90],[303.75,90],[309.375,90],[315,90],[320.625,90],[326.25,90],[331.875,90],[337.5,90],[343.125,90],[348.75,90],[354.375,90],[0,90],[5.625,90],[11.25,90],[16.875,90],[22.5,90],[28.125,90],[33.75,90],[39.375,90],[45,90],[50.625,90],[56.25,90],[61.875,90],[67.5,90],[73.125,90],[78.75,90],[84.375,90],[90,90],[95.625,90],[101.25,90],[106.875,90],[112.5,90],[118.125,90],[123.75,90],[129.375,90],[135,90],[140.625,90],[146.25,90],[151.875,90],[157.5,90],[163.125,90],[168.75,90],[174.375,90],[180,90],[180,84.375],[180,78.75],[180,73.125],[180,71.515714]],[[143.60385,73.21244],[143.48283,73.47525],[142.06207,73.85758],[140.81171,73.76506],[139.86312,73.36983],[140.038155,73.31692],[142.08763,73.20544],[143.60385,73.21244]],[[145.086285,75.56262],[141.471615,76.09289],[138.831075,76.13676],[137.51176,75.94917],[136.97439,75.26167],[138.95544,74.61148],[140.61381,74.84768],[144.3,74.82],[145.086285,75.56262]],[[150.73167,75.08406],[148.22223,75.345845],[146.358485,75.49682],[146.11919,75.17298],[147.977465,74.778355],[149.575925,74.68892],[150.73167,75.08406]],[[24.72412,77.85385],[23.28134,78.07954],[22.88426,78.45494],[20.8119,78.25463],[21.41611,77.93504],[20.72601,77.67704],[22.49032,77.44493],[24.72412,77.85385]],[[18.25183,79.70175],[16.99085,80.05086],[15.52255,80.01608],[15.14282,79.67431],[13.71852,79.66039],[13.17077,80.01046],[10.44453,79.65239],[11.22231,78.8693],[13.1706,78.02493],[14.66956,77.73565],[13.76259,77.38035],[15.91315,76.77045],[17.1182,76.80941],[17.59441,77.63796],[18.47172,77.82669],[19.02737,78.5626],[21.54383,78.95611],[18.25183,79.70175]],[[99.93976,78.88094],[100.186655,79.780135],[97.88385,80.746975],[95.940895,81.2504],[93.77766,81.0246],[91.18107,80.34146],[92.5454,80.14379],[93.31288,79.4265],[94.97259,79.044745],[97.75794,78.7562],[99.93976,78.88094]],[[25.447625,80.40734],[22.919253,80.657144],[21.907945,80.357679],[20.455992,80.598156],[17.368015,80.318896],[18.462264,79.85988],[19.897266,79.842362],[20.075188,79.566823],[23.024466,79.400012],[25.924651,79.517834],[27.407506,80.056406],[25.447625,80.40734]],[[332.89954,83.51966],[324.91213,83.64513],[321.37786,83.54905],[320.10247,83.18018],[316.59356,83.22516],[313.23621,82.62796],[313.0993,82.19979],[315.477,81.6607],[313.40016,81.985945],[311.99614,82.06481],[309.60939,82.43883],[306.95672,81.88833],[305.86558,82.19962],[302.79256,82.19074],[299.71751,82.03363],[297.34884,81.77042],[297.76556,81.3211],[296.31075,81.21396],[292.84871,80.51582],[291.97702,80.11721],[294.6761,79.75814],[294.2893,79.39436],[290.62655,78.91388],[286.84062,78.43271],[286.703,78.04419],[288.95707,77.63595],[293.23603,77.37595],[291.22329,77.32312],[288.59743,77.00857],[290.33515,76.37975],[291.49562,76.06141],[293.93573,76.13486],[296.60835,76.1752],[298.73139,76.10238],[301.41484,75.51727],[301.40321,75.09861],[302.67637,74.71026],[303.87997,73.64977],[304.67366,72.95861],[305.28181,72.58625],[304.16532,71.65444],[305,71.406537],[305.99578,71.54719],[306.89063,71.20485],[308.60986,70.56978],[306.568685,70.835755],[305.64116,70.821315],[305.24999,70.28932],[305.31664,69.61003],[306.54371,69.283625],[307.44208,69.42616],[307.986415,69.57492],[309.12878,69.9291],[308.91959,69.14781],[308.52464,68.72958],[307.0196,68.35759],[306.03089,67.18899],[306.69839,66.8365],[306.33834,66.09957],[307.72341,65.1767],[307.85986,64.27842],[308.36675,63.62691],[310.09961,62.38336],[310.76692,61.40681],[311.73706,60.85843],[313.73636,60.85328],[315.2125,60.03676],[316.6216,60.09772],[317.13381,61.07404],[317.58334,61.90093],[317.18062,62.68233],[318.8113,63.48246],[319.31719,64.13902],[319.33101,64.83997],[320.18778,65.45848],[321.62495,65.69213],[322.95622,65.93768],[323.64716,65.9789],[325.79804,66.67974],[327.18895,67.73547],[328.22335,68.12078],[329.32629,68.12503],[332.25263,68.47046],[334.97073,69.2588],[337.65098,70.12946],[336.27258,70.18401],[333.63724,70.22646],[334.79865,70.75226],[334.45659,71.43094],[335.69298,70.85649],[336.46397,70.471],[338.24644,70.66369],[337.86719,71.46898],[336.55704,72.08016],[335.20704,72.3302],[335.72166,72.59788],[337.70046,72.18409],[337.68689,72.62928],[336.43407,73.30663],[337.82779,73.30955],[339.23766,73.46436],[339.56546,73.81713],[338.40578,74.22382],[340.62719,74.29561],[339.33182,75.15585],[340.40104,75.24838],[340.16593,76.09808],[338.32056,76.62795],[339.96497,76.94434],[341.52715,76.98565],[340.32647,77.63859],[340.29501,78.75128],[341.1,79.4],[342.26965,80.12912],[339.95376,80.17708],[343.15,80.35],[343.71467,80.58004],[347.79145,81.29154],[347.22982,81.71885],[344.23182,81.91245],[339.37637,81.52462],[336.83039,81.15271],[337.92825,81.73449],[337.09672,82.09317],[335.15552,81.78697],[332.14334,82.13178],[328.60354,82.02154],[328.1,82.2],[333.48247,82.29765],[337.30818,82.34165],[339.15461,82.72669],[332.89954,83.51966]],[[51.136187,80.54728],[51.522933,80.699726],[50.039768,80.918885],[49.09719,80.753986],[48.522806,80.514569],[48.318477,80.78401],[46.799139,80.771918],[44.846958,80.58981],[47.072455,80.559424],[46.502826,80.247247],[47.586119,80.010181],[48.754937,80.175468],[48.894411,80.339567],[49.793685,80.415428],[51.136187,80.54728]],[[57.535693,70.720464],[55.622838,71.540595],[55.419336,72.371268],[56.986786,73.333044],[58.477082,74.309056],[61.583508,75.260885],[64.637326,75.737755],[68.180573,76.233642],[68.852211,76.544811],[68.15706,76.939697],[66.210977,76.809782],[64.498368,76.439055],[61.170044,76.251883],[57.868644,75.60939],[55.631933,75.081412],[55.902459,74.627486],[53.50829,73.749814],[54.427614,73.627548],[52.444169,72.774731],[52.478275,72.229442],[51.455754,72.014881],[51.601895,71.474759],[53.412017,71.206662],[53.677375,70.762658],[56.944979,70.632743],[57.535693,70.720464]],[[345.491305,66.455892],[343.832181,66.526792],[342.201376,65.993853],[340.943158,66.276601],[339.423716,65.732112],[337.865078,66.410469],[336.349485,66.262519],[335.673816,65.611189],[337.772577,65.378594],[337.815597,65.084968],[336.044956,64.89113],[338.221516,64.402116],[337.237028,63.960179],[340.027245,63.643635],[341.343754,63.496383],[342.205562,63.678749],[345.090166,64.364082],[346.390268,65.126671],[345.260363,65.808748],[345.491305,66.455892]],[[269.452881,69.497681],[267.593079,69.700073],[268.480408,70.191284],[267.121887,71.318726],[266.110107,71.760071],[264.791199,71.920471],[263.608887,71.194885],[263.528687,70.089905],[264.695923,69.68573],[265.767212,69.069092],[265.315002,68.063904],[264.51062,68.090698],[263.874207,67.293518],[263.880127,68.239502],[262.330505,68.578674],[261.441406,68.403931],[261.556824,67.781677],[260.098022,67.805725],[258.545715,67.646912],[256.778931,68.0979],[255.662109,68.018127],[254.657227,68.561279],[253.849976,68.80011],[253.049988,68.700073],[251.832825,68.653931],[251.187012,68.311707],[252.207581,67.887512],[251.119812,67.381531],[250.053894,67.981079],[249.202087,67.806091],[246.502808,67.688293],[244.69519,67.90271],[246.102112,68.398926],[244.753113,68.905884],[243.773621,68.841492],[242.3974,69.011292],[240.05719,69.37793],[238.52771,69.797913],[237.316589,69.85553],[236.938904,69.563721],[235.710388,69.399719],[235.575195,70.158508],[234.243713,69.480713],[232.552917,70.377319],[231.861816,70.483887],[231.638489,70.012878],[230.892273,69.779297],[230.205322,70.193726],[228.568726,69.944519],[227.070801,69.50531],[225.585388,69.627502],[224.374329,69.315125],[223.496399,68.898071],[222.453613,68.990112],[220.879517,69.47113],[219.014099,69.712097],[217.92749,69.851929],[216.410583,70.152527],[215.080017,69.990112],[214.309998,70.120117],[212.386719,70.214111],[210.280029,70.53009],[209.26001,70.430115],[207.72998,70.600098],[207.789978,70.830078],[206.099976,70.890076],[205.655823,70.696472],[204.93219,71.147888],[203.419189,71.35791],[201.88031,70.824707],[200.960815,70.891724],[199.065186,70.447693],[198.091125,70.333313],[197.069519,69.858093],[196.831421,69.371094],[195.569214,68.915527],[193.795288,68.883118],[193.235596,68.358887],[194.609802,68.042908],[195.569092,67.616272],[196.280273,67.116516],[197.510315,66.735474],[198.322205,66.116089],[196.211487,66.077271],[196.347473,66.576721],[195.52533,66.576721],[193.2948,66.088318],[191.889526,65.670105],[193.155029,65.088928],[193.574707,64.686707],[195.039185,64.447083],[196.453613,64.559082],[197.242187,64.338684],[197.546997,64.559509],[198.608093,64.777283],[199.22229,64.788696],[198.481995,64.402893],[199.041687,64.2229],[199.227478,63.766113],[198.465576,63.455872],[197.739502,63.54187],[196.9328,63.059509],[196.246704,63.219482],[195.4375,63.146484],[195.080811,62.633118],[194.26563,62.075073],[193.878601,61.500122],[194.649231,61.073914],[194.653625,60.507507],[195.33783,60.267517],[196.181702,59.798096],[197.481995,59.989685],[198.125916,59.633728],[197.945007,59.266907],[198.031189,58.671692],[198.64502,58.670898],[199.644714,59.071106],[200.018799,58.572693],[200.288391,58.931519],[200.941406,58.424316],[201.482788,58.787903],[201.805298,58.615906],[202.958313,58.918884],[202.449707,58.328308],[202.277222,57.570129],[201.538879,57.216919],[201.315613,57.016724],[199.929504,56.418091],[199.436401,56.008118],[198.195801,55.895081],[197.130005,55.348083],[196.151672,55.03949],[195.0578,54.572327],[195.214417,54.404297],[196.930603,54.68988],[197.762207,55.024292],[198.776978,55.364685],[199.710327,55.643677],[200.396729,55.566711],[201.566711,55.99408],[201.882813,56.463684],[203.443909,56.980103],[203.691711,57.422913],[204.692505,57.727905],[205.767517,58.146484],[206.712524,58.864685],[205.980896,59.350281],[207.421692,60.061707],[208.104187,60.727295],[209.378906,61.284485],[209.653076,61.033691],[208.590271,60.725891],[208.140625,59.745117],[208.283691,59.155884],[209.391785,59.368286],[210.272217,59.705688],[211.429199,59.914307],[211.981995,59.978271],[211.775696,60.673096],[212.88562,60.884705],[214.074524,60.458679],[216.041199,59.999329],[217.425598,60.084473],[219.174805,59.727478],[220.132202,59.537903],[222.200012,58.500122],[223.372009,58.21228],[224.961792,58.187683],[225.921997,58.123108],[226.460815,57.178894],[227.75,56.370117],[228.032776,55.497925],[228.914185,55.178894],[229.463928,54.802673],[229.485107,54.28772],[230.694824,53.561707],[230.8703,52.755493],[232.149719,52.329712],[232.007324,51.715881],[232.564392,50.830688],[234.375427,50.416687],[235.089783,49.98468],[237.025818,49.002686],[237.159973,49.000122],[237.5,48.180115],[237.659973,47.360107],[237.41272,47.09613],[236.880005,48.0401],[235.433899,48.3797],[235.312805,48.184509],[235.604309,47.720276],[235.92041,46.864685],[236.101074,45.523499],[235.85791,43.708496],[235.467224,42.766113],[235.786316,41.999695],[235.821228,41.14209],[235.60199,40.313293],[236.134888,39.76709],[236.272888,38.951721],[237.046814,38.113708],[237.487976,37.783508],[237.452515,37.55188],[238.2854,36.161682],[239.255676,35.156921],[239.377197,34.608521],[239.632202,34.447083],[240.561218,34.348511],[240.919006,34.078125],[241.480103,34.027893],[241.589417,33.740906],[242.056091,33.621277],[242.704102,33.046326],[242.872314,32.535278],[243.278503,31.635681],[243.741699,30.836487],[244.11261,30.180908],[244.481323,29.556274],[245.068176,29.27948],[245.838013,28.566101],[245.80072,28.115112],[245.429688,27.741516],[245.017822,27.798279],[244.944885,27.722717],[245.534302,27.14209],[246.151123,26.900085],[246.40332,26.639526],[246.5354,26.768311],[247.222717,26.322083],[247.69928,26.012085],[247.851013,25.470276],[247.817993,24.738525],[248.329407,24.484497],[249.050476,24.001099],[249.705017,23.431091],[249.968689,22.82312],[250.145813,22.818298],[250.566589,23.18573],[250.590881,23.364685],[250.22821,23.811279],[249.827209,24.265686],[249.344971,24.298706],[249.289978,24.826111],[249.012207,25.294678],[248.715393,25.732727],[248.383484,26.662903],[247.755127,27.171875],[247.542114,27.525879],[247.238403,27.780273],[247.03772,28.425293],[246.859985,28.411316],[246.728088,28.754883],[246.575989,28.826294],[246.411194,29.061707],[245.669006,29.750488],[245.326111,30.16272],[245.228821,30.913696],[245.063293,31.393494],[245.223572,31.799683],[245.794312,31.524109],[246.128113,31.567688],[246.851318,31.171082],[246.836182,30.786926],[247.190491,30.021118],[247.72821,29.266907],[247.77179,28.954529],[248.240417,28.468079],[248.821106,27.941284],[249.359009,27.859924],[249.608276,27.162109],[250.198608,26.676086],[250.708374,26.442871],[250.555908,25.82489],[250.739807,25.580688],[251.598083,25.172302],[252.084595,24.548889],[253.090088,23.767883],[253.971313,22.773682],[254.30658,22.269104],[254.396912,21.871277],[254.734192,21.422119],[254.729309,21.076294],[254.49939,20.816895],[254.602295,20.531677],[254.268616,20.434082],[254.507019,19.946899],[255.007996,19.316284],[256.08252,18.748718],[256.499023,18.292297],[257.521912,17.975891],[258.081482,17.916077],[258.333923,17.649109],[259.170471,17.171082],[260.302612,16.706299],[261.052307,16.566101],[261.987,16.1073],[262.736389,15.917114],[263.442627,15.653503],[263.946594,15.752075],[264.749817,16.128296],[265.308411,16.201111],[266.124817,15.940308],[266.64063,15.615479],[267.772278,14.538879],[268.310303,14.126282],[268.767578,13.927917],[269.391418,13.909912],[269.904419,13.735474],[270.187622,13.520691],[270.743286,13.458679],[271.156799,13.259705],[271.516724,13.163879],[272.095886,13.149109],[272.206909,13.384521],[272.51062,13.297485],[272.683411,12.98468],[272.607605,12.914124],[272.442505,13.064697],[272.331482,12.909912],[272.83252,12.458313],[273.254089,12.144104],[273.474121,11.806885],[273.941589,11.403503],[274.287476,11.088501],[274.058289,10.895325],[274.340698,10.754272],[274.208313,10.43927],[274.202576,10.134888],[274.339294,9.933289],[274.660522,9.834473],[274.889099,9.557129],[275.088623,9.796082],[275.024414,10.086731],[275.286621,9.908081],[275.352417,9.615479],[275.696594,9.487488],[276.090088,9.290894],[276.367371,9.051514],[276.403687,8.830505],[276.288513,8.656921],[276.491577,8.446899],[277.034302,8.225098],[277.149109,8.073914],[277.179993,8.290894],[277.609131,8.29248],[277.868591,8.175476],[278.278687,8.108887],[278.48053,7.706726],[278.810303,7.647888],[278.940491,7.817871],[279.113586,7.22052],[279.578918,7.271484],[279.723389,7.419678],[279.996399,7.547485],[279.519287,8.090271],[279.617371,8.298523],[279.83551,8.333313],[280.239502,8.584473],[280.4422,8.932495],[280.8797,8.996094],[281.37793,8.718079],[281.564514,8.387695],[281.817993,8.319275],[281.570923,8.052124],[281.785095,7.512329],[282.118408,7.223877],[282.523315,6.691101],[282.681213,5.845276],[282.466797,5.582886],[282.692383,4.668091],[282.503723,4.087708],[282.872314,3.84967],[282.489624,3.325073],[282.068481,2.696716],[281.572388,2.6297],[281.337891,2.267273],[281.382202,1.766479],[281.009094,1.691284],[281.144714,1.38092],[280.457214,0.98291],[279.909424,0.768494],[279.979187,0.360474],[279.600708,-0.283691],[279.416687,-0.906677],[279.066406,-1.057373],[279.235229,-1.965027],[279.032288,-2.246887],[279.631287,-2.685181],[280.013489,-2.220703],[280.229797,-2.657471],[279.69751,-3.404785],[278.900391,-4.036377],[278.589111,-4.736694],[279.07373,-5.690491],[278.75,-6.13678],[279.462524,-6.541687],[280.239502,-7.194275],[280.554077,-7.930786],[280.963074,-8.386597],[281.907898,-10.377686],[282.893799,-12.222717],[283.740784,-13.534973],[283.576599,-13.823181],[283.990784,-14.649292],[284.762207,-15.265686],[286.555481,-16.35937],[288.538025,-17.363403],[288.624817,-17.773804],[289.627502,-18.3479],[289.835571,-19.756409],[289.908813,-21.393311],[289.596008,-23.628906],[289.275024,-25.705872],[289.09491,-27.640381],[288.510193,-28.861389],[288.630005,-30.095703],[288.331299,-30.920593],[288.561523,-32.418884],[288.138306,-33.909119],[287.446899,-35.508789],[286.833313,-37.123779],[286.411987,-37.156311],[286.494507,-38.282898],[286.78241,-39.258606],[286.322876,-39.9422],[285.982117,-41.7948],[285.668091,-43.224976],[286.298706,-43.365784],[286.611084,-42.117493],[287.282288,-42.383301],[286.759705,-44.454895],[285.648315,-44.103027],[285.307922,-45.763977],[284.355591,-46.647583],[285.873413,-46.939209],[284.817322,-47.711914],[284.392029,-48.673706],[284.520325,-50.378296],[285.023376,-51.043396],[284.73999,-51.629272],[285.053223,-52.262695],[286.297302,-52.835083],[287.442078,-53.531372],[288.57019,-53.856384],[288.993713,-53.833191],[289.154907,-52.89917],[290.057312,-52.537903],[290.538696,-52.29187],[291.428528,-52.299377],[291.849976,-52.349976],[291.184509,-51.771118],[290.861511,-50.732483],[291.271301,-50.264221],[292.183899,-49.86969],[292.833801,-48.697327],[294.014893,-48.133301],[294.359009,-47.236084],[293.403015,-47.033875],[292.419495,-46.301697],[292.706177,-45.55188],[293.490112,-45.039612],[294.434814,-45.036804],[294.671204,-44.501282],[294.818176,-43.4953],[295.621216,-42.873474],[296.541992,-42.56311],[296.24408,-42.043701],[295.696594,-42.359009],[295.021423,-42.057983],[294.882019,-41.06427],[295.267883,-40.802612],[296.229492,-41.166809],[297.254211,-41.028687],[297.854004,-40.67688],[297.669495,-40.172607],[297.874207,-39.424072],[297.664124,-38.827698],[298.762573,-38.928406],[300.768188,-38.720215],[302.250916,-38.183899],[303.211792,-36.901489],[303.262512,-36.413086],[302.637695,-35.977417],[302.774231,-35.288025],[301.504578,-34.431519],[301.572998,-33.909485],[302.18219,-34.462524],[302.860291,-34.430481],[303.78479,-34.859802],[304.325989,-34.752686],[305.064209,-34.952576],[306.193604,-34.39679],[306.626404,-33.768311],[307.287903,-33.196594],[307.743896,-32.2453],[308.423828,-31.77771],[309.303101,-30.98437],[310.41272,-29.224487],[311.111572,-28.674072],[311.338501,-28.186096],[311.52533,-27.175903],[311.359009,-26.623718],[311.504517,-25.877014],[312.351013,-24.885193],[313.527893,-24.088989],[314.647888,-23.796814],[315.352173,-23.35199],[316.925293,-22.967712],[318.011719,-22.970093],[318.245911,-22.370605],[319.055298,-21.937317],[319.225281,-20.90448],[320.239197,-19.599121],[320.416504,-18.262207],[320.732727,-17.867676],[320.838989,-17.208374],[321.117676,-15.666992],[321.046814,-13.793396],[321.326111,-13.057678],[321.576111,-13.038086],[322.316406,-12.171204],[322.953491,-11.04071],[324.363098,-9.649292],[324.871826,-8.996399],[325.27002,-7.343201],[325.104004,-6.73822],[324.764587,-5.464905],[324.402222,-5.149475],[323.547119,-5.10937],[322.776794,-4.820923],[321.499695,-3.700623],[320.021423,-2.872986],[318.527405,-2.911987],[316.581299,-2.383118],[315.418396,-2.691284],[315.582397,-2.137695],[315.094299,-1.551697],[313.433411,-0.940979],[312.17511,-0.581604],[311.415588,-1.237793],[311.379517,-0.235413],[309.611816,-0.078369],[309.30072,0.223083],[310.052917,1.046326],[310.026001,1.736511],[309.491211,1.901489],[308.930298,3.650513],[308.682922,4.203491],[308.342224,4.156311],[308.176697,4.565918],[307.11792,5.409912],[306.381592,5.646484],[306.041992,5.756531],[304.966797,6.02533],[304.158203,5.953125],[304.05072,5.772888],[302.8526,5.973083],[302.457825,6.321289],[301.921875,6.809082],[301.545105,6.832886],[301.51709,7.347717],[300.898315,7.999329],[300.241699,8.367126],[299.849915,8.602905],[299.328796,8.580322],[299.169495,9.381287],[298.411316,9.873108],[297.611511,9.948303],[297.269897,10.420288],[298.11908,10.715698],[296.920715,10.701721],[295.682007,10.641479],[295.670593,10.389709],[295.109619,10.077271],[294.344788,10.200928],[293.772217,10.648682],[292.703796,10.545898],[291.805908,10.554688],[291.766724,10.885681],[291.117004,11.443481],[290.41571,11.459717],[290.056824,12.162292],[289.706177,11.846924],[289.844788,11.375488],[288.599426,10.969116],[288.649902,10.211914],[288.960022,9.860107],[288.735413,9.137329],[288.304382,9.072327],[287.925903,9.865723],[288.367004,10.446472],[288.379211,10.969482],[288.052979,11.423279],[288.640015,11.5401],[288.668396,11.776306],[288.86261,12.113098],[288.60022,12.376099],[288.245911,12.437317],[287.76178,11.955688],[287.372192,11.732117],[286.585327,11.227112],[285.802795,11.310486],[285.723328,11.102112],[285.093079,11.08313],[284.519592,10.61908],[284.335327,9.774109],[284.325378,9.443298],[283.913696,9.336914],[283.163391,8.638672],[282.646729,8.670471],[282.270508,8.946899],[281.944092,9.247681],[281.499084,9.420471],[280.941589,9.454712],[280.978821,9.552917],[280.426697,9.611694],[280.085388,9.312683],[279.478088,9.111084],[279.052673,8.858521],[278.560791,8.786316],[278.285889,9.032104],[278.191406,8.950684],[277.792419,8.995728],[277.812927,9.20752],[277.453796,9.566284],[276.984314,9.993103],[276.597717,10.395508],[276.344421,10.938904],[276.191101,11.103088],[276.144592,11.373291],[276.349121,11.629089],[276.280396,11.893127],[276.373901,12.320923],[276.526672,12.419128],[276.501526,12.869324],[276.447815,13.127075],[276.480225,13.567688],[276.587524,13.970093],[276.817871,14.31073],[276.71582,14.676697],[276.766785,14.899902],[276.852783,14.995911],[276.5896,15.270874],[276.226013,15.424072],[275.937012,15.648315],[275.631775,15.835083],[275.473022,15.8573],[275.016296,15.995911],[274.817627,15.909302],[274.55603,15.885681],[274.316711,15.953674],[273.998108,16.005493],[273.880798,15.893494],[273.559082,15.782898],[273.096802,15.756714],[272.632324,15.846924],[272.477112,15.797302],[272.384399,15.878906],[272.098206,15.864502],[271.878906,15.688721],[271.775024,15.727722],[271.481689,15.85553],[271.395386,15.706482],[271.069397,15.887329],[271.267578,16.233704],[271.448181,16.265503],[271.644592,16.530884],[271.760498,17.036072],[271.697388,17.131714],[271.802124,17.489502],[271.714722,17.644287],[271.876587,18.076721],[271.893188,18.348694],[271.703674,18.353271],[271.700012,18.500122],[271.909424,18.516724],[272.162781,18.259888],[272.413513,19.0401],[272.563293,19.472473],[272.379028,19.646484],[272.616699,20.255493],[273.154114,20.849915],[273.187988,21.331482],[272.94812,21.543518],[272.341614,21.458923],[271.456116,21.493713],[270.398682,21.261719],[269.721375,20.999878],[269.548523,20.70752],[269.466492,19.867493],[269.22821,19.284119],[268.592102,18.876099],[267.962708,18.704712],[267.213928,18.524902],[266.451416,18.423889],[265.57428,18.144287],[265.161011,18.562683],[264.099121,18.828125],[263.707886,19.320496],[263.474487,19.89093],[262.81073,20.635498],[262.611023,21.411072],[262.301025,21.898682],[262.127625,22.444275],[262.223999,22.932678],[262.297119,24.272278],[262.471924,24.992126],[262.858215,25.865906],[262.861389,25.86792],[262.859802,25.869507],[262.669983,26.210083],[262.619995,26.690125],[262.630005,27.380127],[262.859985,27.830078],[263.406006,28.307495],[264.399719,28.738708],[265.309998,29.480103],[266.151611,29.713684],[266.773621,29.783875],[267.500916,29.552307],[268.373291,29.677124],[269.119812,29.148682],[269.845398,29.117493],[270.220703,29.307129],[270.591797,29.159729],[270.78241,29.291077],[270.570007,29.488708],[270.586304,29.894287],[270.395081,30.176331],[270.819519,30.316101],[271.582214,30.384888],[272.469727,30.274475],[273.599976,30.400085],[274.22699,30.15271],[274.712219,29.686096],[274.891174,29.636292],[275.900024,30.090088],[276.290405,29.936707],[277.070007,29.100098],[277.349976,28.55011],[277.144714,27.886292],[277.294922,27.495117],[277.76001,26.730103],[278.289978,25.870117],[278.669983,25.640076],[278.827881,25.201294],[279.320007,25.080078],[279.619019,25.206299],[279.86853,25.816895],[279.911987,26.205688],[279.943481,26.880127],[279.469971,28.0401],[279.464417,28.472107],[279.02002,29.180115],[278.686279,30.035522],[278.509583,30.730103],[278.663696,31.440491],[279.13501,32.033325],[279.69873,32.509277],[280.796509,33.158508],[280.939392,33.49408],[281.445679,33.861328],[281.945129,33.925476],[282.602417,34.512085],[283.636902,34.808472],[284.272522,35.55072],[284.132019,36.551331],[284.028198,36.897278],[283.741272,36.966492],[283.698425,37.918091],[283.039978,38.23291],[283.670715,38.083313],[283.457275,38.717712],[283.650024,39.150085],[283.767212,38.319275],[284.278015,37.937073],[283.968811,37.256714],[284.059814,37.216919],[284.62262,38.015503],[284.943298,38.404114],[284.916504,38.781311],[284.679993,38.960083],[284.471924,39.498474],[284.799988,39.248474],[285.019592,39.196472],[285.093994,38.939514],[285.821594,39.70929],[286.037598,40.427673],[285.743286,40.473511],[286.047729,40.750671],[286.018005,40.628113],[286.65509,40.630127],[288.054993,40.930115],[287.758789,41.119507],[286.289978,40.931091],[287.123596,41.220703],[287.705017,41.270081],[288.140015,41.320129],[288.8797,41.494507],[289.359985,41.475098],[290.034973,41.637085],[290.115112,41.922913],[289.815002,42.145081],[289.919983,41.78009],[289.505005,41.805115],[289.174988,42.335083],[289.18512,42.865295],[289.309998,43.03009],[289.883911,43.684082],[290.940002,43.980103],[291.967529,44.325317],[293.0354,44.809692],[292.86261,45.137512],[293.973999,45.259277],[295.574524,45.292114],[293.838318,44.465088],[293.876587,43.618713],[294.635925,43.545288],[295.753418,44.265503],[296.7453,44.670288],[298.960205,45.26532],[300.197205,45.920471],[299.551392,46.282715],[299.481873,47.007874],[298.479309,45.883911],[296.826721,45.739075],[295.527893,46.238525],[295.201477,46.993103],[294.884521,48.070923],[295.828979,48.742493],[294.943787,49.23291],[293.447571,49.133118],[291.349976,48.30011],[289.744812,46.986084],[288.895508,46.821716],[290.046387,47.744873],[291.488892,49.068481],[292.763672,49.511475],[293.601013,50.228882],[294.636719,50.298279],[296.137512,50.291077],[298.276428,50.080505],[299.966919,50.24292],[301.22522,51.06427],[302.873108,51.419678],[303.59082,51.770691],[304.316711,52.146729],[304.243713,53.270508],[303.841919,53.647522],[303.06311,53.780273],[302.666809,54.626526],[302.024902,54.945496],[300.43042,55.204102],[299.531494,55.775513],[298.201416,56.339478],[298.603516,56.967529],[297.49762,58.167114],[296.195313,59.442688],[295.416504,60.335693],[294.754822,59.870728],[293.798218,58.767273],[292.35022,58.212097],[291.625488,58.801086],[290.712097,58.957275],[290.3797,60.221313],[290.409607,61.061523],[288.626282,61.137085],[288.322998,61.52533],[287.091492,62.105103],[286.160095,62.443909],[285.331787,62.181091],[284.303772,62.278503],[282.589417,62.550476],[281.893188,62.319702],[282.227295,60.757874],[282.66333,59.852722],[281.483093,58.804688],[282.697815,58.052124],[283.376892,57.202698],[283.458618,56.534302],[282.904419,55.837524],[281.771301,55.136475],[280.17041,54.667725],[280.875793,54.141479],[281.398071,52.562073],[280.856995,51.533875],[280.087097,51.208496],[278.599304,52.157898],[277.875,53.2771],[277.563782,54.282288],[277.727173,55.148315],[276.639526,55.244873],[274.98822,55.302673],[273.928772,55.723877],[272.675781,55.999084],[271.960205,56.47168],[270.96051,56.851685],[269.102295,57.284729],[267.703003,57.087097],[267.235413,57.845703],[266.784973,58.782104],[265.315491,58.948914],[265.370728,60.110291],[265.758484,60.898682],[266.843018,62.024719],[268.066589,62.835083],[269.22998,62.960327],[269.296021,63.610291],[270.085571,64.032715],[271.51709,64.099121],[272.676819,64.775696],[272.968628,65.213074],[273.932373,66.056274],[274.230591,66.558289],[275.264587,66.257324],[276.655518,66.411682],[278.613525,67.110901],[278.740723,67.59729],[278.035706,68.132507],[278.779785,68.66571],[278.719604,69.162109],[277.377502,69.658325],[275.899231,69.805481],[274.478088,69.88208],[274.423401,68.784485],[273.693909,67.921509],[272.649902,67.19873],[271.682495,67.873474],[271.980408,68.615112],[270.784912,69.258728],[269.448486,68.475098],[269.452881,69.497681]],[[273.437821,73.157447],[274.173849,73.803816],[271.591758,73.537889],[270.563423,73.129464],[269.79484,72.235074],[270.111849,71.222552],[271.532279,71.218186],[270.48658,70.762038],[271.318287,70.410741],[272.939997,70.260001],[275.055294,69.966634],[278.694529,69.743185],[280.507545,69.871808],[281.042758,70.16688],[281.831366,69.826488],[282.71263,69.76954],[283.771351,69.147769],[283.130899,68.894736],[285.156693,68.554627],[286.688382,68.069437],[287.07394,67.726926],[287.348833,67.284576],[286.055088,66.310578],[285.706117,65.811771],[286.040205,65.454765],[283.981726,65.326969],[282.102719,65.309192],[281.444051,64.572906],[282.29002,64.229542],[285.181497,64.389093],[285.165581,64.679076],[286.621694,64.193963],[288.113722,63.679989],[287.764621,63.397836],[288.976563,62.910708],[291.122633,62.330149],[293.834432,61.930897],[293.671703,62.280075],[292.630319,62.883966],[291.216814,63.74567],[293.724955,62.945099],[294.986196,62.674185],[295.330594,63.392927],[294.679832,64.382737],[294.26792,64.648406],[292.910354,65.108455],[291.858713,65.689789],[291.984984,66.262726],[293.278781,66.388041],[294.85114,65.426033],[296.081556,64.998669],[297.836823,66.160251],[298.148019,66.862121],[296.575066,66.928473],[295.137686,67.847539],[293.550134,68.067163],[291.194877,68.720198],[293.030967,69.186087],[292.08503,70.121948],[291.213946,70.525024],[288.799985,70.920013],[287.757774,71.556925],[285.900859,71.33084],[285.771384,71.767144],[284.394155,72.243678],[282.175376,72.749617],[281.229361,72.352173],[279.251058,72.061907],[279.399912,72.716544],[277.68441,73.750951],[275.149888,73.340278],[274.225629,72.534126],[273.437821,73.157447]],[[283.66,73.102685],[281.935562,73.651932],[279.646942,73.75972],[279.166115,73.693184],[279.123901,73.333183],[280.224167,72.802902],[280.513748,72.742203],[281.60833,72.876656],[282.685562,72.855545],[283.748596,72.826385],[283.66,73.102685]],[[278.10175,62.7108],[278.12301,62.90458],[276.74952,62.91409],[276.00633,62.4528],[276.22538,62.18231],[276.93143,62.15922],[278.10175,62.7108]],[[280.73418,62.158675],[280.47998,62.36371],[280.07061,62.3856],[279.684605,62.085565],[279.63785,62.01649],[279.90044,61.7181],[280.34248,61.63308],[280.73418,62.158675]],[[274.838692,65.657285],[274.116152,65.738778],[273.775114,64.822917],[273.64724,64.035833],[272.778017,63.541238],[274.133231,63.637253],[274.476595,63.052379],[275.899583,63.569712],[276.891202,64.101876],[277.452822,63.651722],[279.00898,63.411246],[279.896549,63.725981],[279.182639,64.057486],[278.44656,63.979609],[278.357986,64.455136],[277.212423,64.766693],[276.117374,65.109618],[275.535988,65.371772],[275.024236,65.217518],[274.838692,65.657285]],[[284.13412,67.14886],[284.78403,67.44425],[284.89667,67.58202],[284.8855,68.01036],[284.10479,68.28721],[283.18834,68.14856],[282.7636,67.58809],[283.01313,67.09873],[284.13412,67.14886]],[[259.64358,73.84389],[258.46,73.36],[259.56164,72.70588],[257.52,72.83],[257.5,72.51],[259.98518,71.73827],[260.67714,71.35639],[261.64034,71.27285],[263.28,71.66],[263.46,72.56],[261.94641,72.99052],[262.88,73.47],[262.62,73.76],[260.83613,73.63339],[259.64358,73.84389]],[[266.803704,72.771992],[267.996035,72.966244],[269.490207,73.856732],[267.579988,74.100025],[265.496342,74.134907],[264.504207,73.862417],[263.981732,73.43743],[263.966255,72.940277],[264.590144,72.061881],[265.730953,72.024596],[266.803704,72.771992]],[[239.54,71.4],[239.54,71.82],[240.78,72.52],[243.23206,73.22292],[244.48919,73.47519],[243.41558,73.89607],[242.44436,74.18577],[239.89022,74.24135],[238.46212,74.44893],[235.08225,74.29275],[236.06,73.68],[235.19271,73.02256],[234.40729,72.19452],[234.07104,71.86868],[236.38,71.34],[236.90781,70.90164],[239.54,71.4]],[[245.83283,73.12145],[244.81091,73.31459],[242.13358,72.70594],[241.43733,72.30785],[240.59801,71.55859],[242.34432,71.2952],[243.88689,71.30918],[241.56762,70.9092],[242.0952,70.54056],[243.51316,70.52045],[245.65,70.6],[247.5839,70.36638],[246.27859,70.19237],[244.86888,70.2373],[243.32527,70.06655],[242.66,69.96],[243.89206,69.16821],[244.78,69.28],[246.14504,69.00744],[246.6868,68.53554],[248.0332,68.60446],[251,68.78],[252.87746,69.11922],[254.04,69.18],[255.76,68.91],[257.56976,68.75282],[257.90671,69.11962],[257.26884,69.50402],[258.91071,69.58447],[259.01922,70.02432],[257.21463,70.49776],[255.53524,70.99297],[255.22516,71.6984],[254.59754,72.67259],[253.47741,73.07601],[252.48355,73.23598],[251.60361,73.08953],[252.31401,72.06548],[251.81165,71.65089],[250.99346,72.63335],[250.07965,72.96113],[248.94961,72.4504],[247.55898,72.9554],[245.33366,72.65277],[245.83283,73.12145]],[[255.5,73.42],[254.74,73.64],[253.4,73.6],[253.06,73.46],[254.62,72.76],[255.5,73.42]],[[264.352319,69.10769],[263.742599,69.49003],[263.442599,69.68003],[262.842599,69.86003],[261.781739,70.14354],[261.082599,69.71003],[260.202599,69.40003],[261.568199,68.9507],[262.382599,69.06003],[263.730479,68.75704],[264.352319,69.10769]],[[251.78859,76.20168],[251.45141,76.67832],[250.4189,76.79417],[249.50274,76.42982],[250.9329,75.47321],[249.18578,75.54919],[247.40944,76.14134],[244.59513,76.47887],[243.65398,76.19903],[242.2896,75.2222],[243.68779,75.04343],[248.20579,75.1625],[246.12865,74.72029],[246.25619,74.39427],[247.77693,74.41696],[250.3,74.85],[253.68653,75.00527],[254.29502,75.47951],[254.119,75.9694],[253.07107,76.01282],[252.18057,75.84552],[251.78859,76.20168]],[[261.5,76.72],[261.42301,76.58859],[260.01651,76.64634],[258.51027,76.30537],[257.43448,76.3366],[257.49791,75.5638],[259.13708,75.64075],[259.11634,75.05736],[260.19126,74.89744],[261.84,75],[262.295585,75.74344],[262.264415,76.25656],[261.5,76.72]],[[265.315914,77.097878],[263.254877,77.161389],[262.878621,76.751078],[264.037543,76.441381],[266.106176,76.319244],[267.110094,75.882655],[267.231715,75.38682],[267.577559,74.837758],[270.235278,74.515555],[271.84965,74.392307],[273.902548,74.410032],[276.771106,74.564028],[278.051157,74.442459],[279.542229,74.657304],[280.166067,74.923127],[279.942489,75.336849],[278.871469,75.713983],[277.246555,75.784315],[275.210375,75.699204],[273.620808,75.482421],[272.161724,75.566189],[270.812917,75.610166],[270.177762,75.847774],[269.030339,76.074013],[269.258154,76.449597],[268.394977,76.778518],[266.426079,76.776296],[265.315914,77.097878]],[[291.5,83.106322],[289.334235,83.169781],[287.16847,83.23324],[284.28122,83.06404],[283.75,83.172059],[280.69336,83.13056],[278.9,83.02],[277.58,82.86],[276.82,82.32],[275.739995,82.6],[274.5,82.652273],[273.02976,82.27961],[271.06773,82.11751],[269.9,82.085],[268.41298,81.89429],[268.63214,81.5531],[269.8,81.26],[270.63337,80.85569],[272.40105,80.51627],[275.9,80.58],[278.15177,80.46442],[276.591304,80.1],[275.80156,80.20836],[273.06821,80.25145],[273.49266,79.73624],[274.90505,79.34543],[274.62132,78.9969],[272.84802,78.75867],[272.03808,78.37181],[273.66,78.18],[275.02366,77.53873],[272.35,77.970222],[271.74,77.9],[272.23261,77.17833],[270.3839,76.95213],[270.50932,76.47239],[272.4,76.42],[273.88816,76.29901],[276.82561,76.45403],[279.43875,76.17812],[282.11089,76.777955],[282.08911,77.022045],[280.38035,76.98336],[280.24049,77.20968],[281.63731,77.50859],[282.11149,77.89991],[283.65646,78.18296],[284.60655,78.52581],[283.77954,79.01907],[284.47076,79.19766],[283.09227,79.32309],[286.12,79.430162],[286.7572,79.63415],[288.82,79.8],[290.5303,80.61683],[292.16,80.9],[294.51969,81.50657],[292.34245,81.50141],[293.24658,81.72527],[295.666,81.92775],[298.10612,82.36165],[298.15,82.6286],[296.32,82.9],[294.17265,83.02801],[291.5,83.106322]],[[243.801413,77.645287],[242.429869,77.498319],[240.896061,77.51222],[238.842465,76.864508],[237.145075,76.116543],[237.145076,76.116543],[238.500005,75.900019],[240.100682,76.053213],[241.959588,76.481172],[242.893949,76.530032],[243.664187,76.876962],[243.801413,77.645287]],[[249.813062,77.697015],[250.145548,77.996325],[248.735557,78.152956],[247.275413,78.05105],[246.465721,77.732207],[247.948809,77.409229],[249.813062,77.697015]],[[259.939808,78.324754],[259.174842,78.800462],[256.470718,79.165349],[254.507711,79.301594],[254.58042,78.918336],[255.789571,78.67742],[254.823867,78.380332],[257.050191,78.343229],[258.69606,78.018985],[260.329061,77.907545],[259.939808,78.324754]],[[250.336854,78.601973],[249.036339,78.804441],[248.49999,78.849994],[247.474109,78.550555],[247.457909,78.407902],[249.118686,78.40692],[250.336854,78.601973]],[[272.98,79.66],[272.19,80.32],[270.55,80.509322],[268.86711,80.72345],[267.59016,81.25739],[265.26458,81.20646],[265.70157,80.97727],[264.67655,80.90729],[263.98356,80.60233],[263.29028,80.15777],[263.92386,79.70502],[265.026,79.37248],[266.85476,79.3801],[266.06426,79.11373],[266.04884,78.75099],[267.12331,78.34333],[269.19564,78.21533],[270.96465,78.28723],[272.81244,79.0393],[274.18565,79.3369],[272.98,79.66]],[[264.169705,78.056941],[264.440722,78.418315],[263.245601,78.765813],[262.662769,78.831984],[261.368016,78.87193],[261.447132,78.458105],[261.875711,78.082857],[262.690157,77.850597],[264.169705,78.056941]],[[266.159997,77.519997],[266.279344,77.634331],[265.577423,77.820005],[263.563696,77.834629],[263.830346,77.555111],[265.704392,77.491343],[266.159997,77.519997]],[[266.387244,74.979997],[266.022253,75.29649],[265.14918,75.647218],[263.711413,75.377828],[263.179068,74.927623],[264.391319,74.666864],[265.843091,74.592347],[266.387244,74.979997]],[[356.994995,58.635],[355.788505,58.550845],[354.990001,58.630013],[354.213175,57.818848],[353.850019,56.78501],[354.355001,56.275015],[354.413602,55.311146],[354.952019,55.783986],[355.280888,55.508473],[354.917473,55.061601],[355.155831,54.790971],[356.369995,54.615013],[357.054991,53.985],[356.90792,53.404441],[355.420001,53.495004],[355.229987,52.840005],[355.777653,52.301356],[354.732704,51.9914],[355.015633,51.593466],[356.585149,51.426009],[355.69001,51.210001],[354.223433,50.159678],[354.754977,49.96],[355.457492,50.341837],[356.382552,50.228356],[357.043726,50.69688],[357.510002,50.500019],[359.212483,50.774989],[0.550334,50.765739],[1.449865,51.289428],[1.050562,51.806761],[1.559988,52.099998],[1.681531,52.73952],[0.469977,52.929999],[0.184981,53.325014],[359.569515,54.464376],[358.885009,54.624986],[357.914991,55.909998],[356.880997,55.973793],[357.780012,56.870017],[358.040719,57.6848],[356.944998,57.690019],[355.926172,57.553025],[356.994995,58.635]],[[303.865964,50.68701],[304.399782,51.317075],[304.593026,51.588273],[304.129023,51.632094],[303.26135,51.287438],[302.64131,50.718274],[301.608195,49.125581],[300.768375,48.523188],[301.203414,48.251525],[300.580506,47.899454],[300.733985,47.603348],[302.674771,47.572807],[303.749201,47.632545],[304.708781,47.389562],[304.002519,46.91972],[304.599227,46.884994],[305.759518,47.752279],[306.038131,47.625207],[305.821064,46.807066],[306.478544,46.618292],[306.930842,46.655499],[307.351901,47.535548],[307.041352,48.157164],[306.913866,48.687804],[306.213986,48.516781],[306.523451,49.249139],[305.526225,49.556691],[305.064857,49.313011],[304.177599,49.587129],[304.528508,49.935815],[303.856895,50.150117],[303.204118,49.812309],[303.865964,50.68701]],[[296.3355,46.55001],[295.98514,47.03601],[295.60739,46.72747],[295.8572,46.39265],[297.12567,45.96818],[297.49609,46.03339],[297.98792,46.44314],[297.0607,46.41587],[296.3355,46.55001]],[[298.1937,49.10506],[298.16442,49.28855],[297.14171,49.70641],[295.82678,49.95718],[295.48088,49.87304],[296.41074,49.40069],[297.70682,49.08717],[298.1937,49.10506]],[[353.211143,52.260118],[353.967015,53.153164],[353.802115,53.867565],[354.338051,54.554603],[353.266153,55.17286],[352.427832,55.131622],[351.672013,54.664519],[350.311475,53.881363],[350.833717,52.864629],[350.022914,51.820455],[351.438383,51.669301],[353.211143,52.260118]],[[283,26.59],[282.21,27.04],[282.21198,26.92516],[282.66,26.53],[282.64359,26.00735],[282.82745,25.87918],[283,26.59]],[[282.18,26.58],[282.15,26.84],[281.49,26.87],[281.02,26.79],[281.09,26.42],[282.18,26.58]],[[282.46534,23.75975],[282.46,24.34],[282.11,25.17],[281.80913,25.2103],[281.59152,24.57564],[281.96595,24.28615],[282.22,23.71],[282.46534,23.75975]],[[280.320476,22.765303],[279.381231,23.10598],[278.595543,23.117271],[277.731849,23.188611],[277.489564,23.078747],[276.732452,22.983042],[276.22176,22.788118],[275.769643,22.565755],[275.552938,22.20495],[275.025089,21.896028],[275.45297,21.801228],[275.947849,21.910575],[276.0912,22.154565],[276.505541,22.168518],[277.224102,22.68815],[278.204998,22.636965],[277.830008,22.387109],[278.179057,22.192057],[279.482465,22.037079],[279.782525,21.827324],[280.715,21.559175],[281.280133,21.598114],[281.517173,21.028613],[281.862708,20.739949],[282.507345,20.673105],[282.914892,20.413354],[282.244519,19.855481],[283.676344,19.952891],[284.36532,19.873774],[285.038405,19.923435],[285.703352,20.050379],[285.821975,20.284628],[285.066104,20.693905],[284.32894,20.735091],[284.401778,21.016624],[283.80538,21.220565],[283.476175,21.20682],[282.853578,21.657851],[282.006704,22.277194],[281.652566,22.512166],[280.718514,22.399202],[280.320476,22.765303]],[[287.420327,19.871501],[286.810209,19.915684],[286.584978,19.639551],[287.215895,19.483591],[287.20835,19.101625],[287.665118,18.668422],[287.305063,18.445799],[286.550458,18.526053],[285.630075,18.664908],[285.541966,18.34255],[286.077567,18.030993],[286.545445,18.217906],[287.155589,18.145611],[287.627524,18.214961],[288.291695,18.044997],[288.342338,17.757573],[288.59979,17.598564],[289.00005,18.283329],[289.330702,18.426886],[289.482863,18.184291],[289.866767,18.245915],[290.047066,18.428307],[290.376012,18.380713],[290.835054,18.422648],[291.310684,18.205142],[291.682057,18.612198],[291.190588,18.979074],[290.745654,19.015196],[290.777874,19.313214],[290.23075,19.293267],[290.049185,19.648],[289.785635,19.622885],[289.193294,19.880286],[288.412696,19.884911],[288.287639,19.714456],[287.420327,19.871501]],[[294.408996,18.228035],[294.228697,18.426679],[293.717566,18.514762],[292.899321,18.520601],[292.757572,18.37446],[292.815838,17.946553],[293.400066,17.981823],[294.152836,17.975906],[294.408996,18.228035]],[[283.097439,17.868238],[283.800341,17.886867],[283.634641,18.160701],[283.103381,18.400867],[282.430399,18.490525],[282.202635,18.524218],[281.782273,18.454533],[281.662281,18.225968],[282.233977,17.861597],[282.793659,17.701116],[283.097439,17.868238]],[[299.065,10.11],[299.105,10.855],[298.895,10.89],[298.32,10.76],[298.34,10.365],[298.05,10.09],[298.23,10],[299.065,10.11]],[[143.561811,-13.763656],[143.597158,-13.400422],[143.522124,-12.834358],[143.158632,-12.325656],[143.115947,-11.90563],[142.866763,-11.784707],[142.79731,-11.157355],[142.51526,-10.668186],[142.143706,-11.042737],[142.118488,-11.328042],[141.928629,-11.877466],[141.68699,-12.407614],[141.842691,-12.741548],[141.65092,-12.944688],[141.519869,-13.698078],[141.63552,-14.270395],[141.56338,-14.561333],[141.702183,-15.044921],[141.398222,-15.840532],[141.274095,-16.38887],[141.07111,-16.832047],[140.875463,-17.369069],[140.215245,-17.710805],[139.260575,-17.371601],[139.108543,-17.062679],[138.585164,-16.806622],[138.303217,-16.807604],[137.580471,-16.215082],[137.06536,-15.870762],[136.295175,-15.550265],[135.500184,-14.997741],[135.428664,-14.715432],[135.783836,-14.223989],[136.077617,-13.724278],[135.961758,-13.324509],[136.305407,-13.29123],[136.685125,-12.887223],[136.95162,-12.351959],[136.492475,-11.857209],[136.258381,-12.049342],[135.882693,-11.962267],[135.298491,-12.248606],[134.678632,-11.941183],[134.393068,-12.042365],[133.550846,-11.786515],[133.019561,-11.376411],[132.357224,-11.128519],[131.824698,-11.273782],[132.557212,-11.603012],[132.575298,-12.114041],[131.735091,-12.302453],[131.223495,-12.183649],[130.617795,-12.536392],[130.183506,-13.10752],[130.339466,-13.357376],[129.888641,-13.618703],[129.4096,-14.42067],[129.621473,-14.969784],[128.985543,-14.875991],[128.35969,-14.86917],[127.804633,-14.276906],[127.065867,-13.817968],[126.582589,-13.952791],[126.142823,-14.095987],[126.125149,-14.347341],[125.685796,-14.230656],[125.670087,-14.51007],[125.167275,-14.680396],[124.926153,-15.0751],[124.379726,-15.56706],[124.258287,-16.327944],[123.817073,-16.111316],[123.503242,-16.596506],[123.859345,-17.069035],[123.433789,-17.268558],[123.012574,-16.4052],[122.312772,-17.254967],[122.286624,-17.798603],[122.241665,-18.197649],[121.655138,-18.705318],[121.399856,-19.239756],[120.85622,-19.683708],[119.805225,-19.976506],[119.252494,-19.952942],[118.987807,-20.044203],[118.836085,-20.263311],[118.229559,-20.374208],[117.441545,-20.746899],[117.166316,-20.623599],[116.711615,-20.701682],[115.947373,-21.068688],[115.460167,-21.495173],[114.647762,-21.82952],[114.225307,-22.517488],[114.149756,-21.755881],[113.736552,-22.475475],[113.843418,-23.059987],[113.706993,-23.560215],[113.502044,-23.80635],[113.393523,-24.384764],[113.625344,-24.683971],[113.721255,-24.998939],[114.216161,-25.786281],[114.232852,-26.298446],[113.936901,-25.911235],[113.440962,-25.621278],[113.778358,-26.549025],[113.338953,-26.116545],[113.477498,-26.543134],[114.048884,-27.334765],[114.173579,-28.118077],[114.616498,-28.516399],[114.641974,-28.810231],[115.040038,-29.461095],[114.997043,-30.030725],[115.160909,-30.601594],[115.689611,-31.612437],[115.801645,-32.205062],[115.679379,-32.900369],[115.714674,-33.259572],[115.545123,-33.487258],[115.048616,-33.623425],[115.026809,-34.196517],[115.564347,-34.386428],[116.625109,-35.025097],[117.295507,-35.025459],[118.024972,-35.064733],[118.505718,-34.746819],[119.007341,-34.464149],[119.298899,-34.509366],[119.893695,-33.976065],[120.580268,-33.930177],[121.299191,-33.821036],[122.183064,-34.003402],[122.811036,-33.914467],[123.659667,-33.890179],[124.028947,-33.483847],[124.221648,-32.959487],[125.088623,-32.728751],[126.148714,-32.215966],[127.102867,-32.282267],[128.240938,-31.948489],[129.535794,-31.590423],[131.326331,-31.495803],[132.288081,-31.982647],[132.990777,-32.011224],[134.273903,-32.617234],[134.085904,-32.848072],[134.613417,-33.222778],[135.239218,-33.947953],[135.208213,-34.47867],[135.989043,-34.890118],[136.372069,-34.094766],[136.996837,-33.752771],[137.810328,-32.900007],[137.890116,-33.640479],[137.503886,-34.130268],[137.352371,-34.707339],[136.829406,-35.260535],[137.71917,-35.076825],[138.207564,-34.384723],[138.449462,-35.127261],[138.120748,-35.612296],[139.082808,-35.732754],[139.574148,-36.138362],[139.806588,-36.643603],[139.992158,-37.402936],[140.638579,-38.019333],[141.606582,-38.308514],[142.17833,-38.380034],[142.745427,-38.538268],[143.609974,-38.809465],[144.485682,-38.085324],[145.032212,-37.896188],[144.876976,-38.417448],[145.489652,-38.593768],[146.317922,-39.035757],[146.922123,-38.606532],[147.381733,-38.219217],[148.304622,-37.809061],[149.423882,-37.772681],[149.997284,-37.425261],[149.946124,-37.109052],[150.075212,-36.420206],[150.32822,-35.671879],[150.714139,-35.17346],[151.010555,-34.31036],[151.343972,-33.816023],[151.709117,-33.041342],[152.450002,-32.550003],[152.891578,-31.640446],[153.089602,-30.923642],[153.069241,-30.35024],[153.339095,-29.458202],[153.512108,-28.995077],[153.569469,-28.110067],[153.092909,-27.2603],[153.161949,-26.641319],[153.136162,-26.071173],[152.855197,-25.267501],[152.07354,-24.457887],[151.609175,-24.076256],[150.899554,-23.462237],[150.727265,-22.402405],[150.482939,-22.556142],[150.077382,-22.122784],[149.678337,-22.342512],[149.28942,-21.260511],[148.717465,-20.633469],[148.848414,-20.39121],[148.177602,-19.955939],[147.471082,-19.480723],[146.387478,-18.958274],[146.063674,-18.280073],[146.160309,-17.761655],[145.888904,-16.906926],[145.637033,-16.784918],[145.48526,-16.285672],[145.271991,-15.428205],[145.374724,-14.984976],[144.894908,-14.594458],[144.563714,-14.171176],[143.922099,-14.548311],[143.561811,-13.763656]],[[167.107712,-14.93392],[166.629137,-14.626497],[166.649859,-15.392704],[166.793158,-15.668811],[167.001207,-15.614602],[167.270028,-15.740021],[167.107712,-14.93392]],[[167.844877,-16.466333],[167.216801,-15.891846],[167.180008,-16.159995],[167.515181,-16.59785],[167.844877,-16.466333]],[[178.3736,-17.33992],[178.12557,-17.50481],[177.67087,-17.38114],[177.28504,-17.72465],[177.38146,-18.16432],[177.93266,-18.28799],[178.55271,-18.15059],[178.71806,-17.62846],[178.3736,-17.33992]],[[167.120011,-22.159991],[166.599991,-21.700019],[165.77999,-21.080005],[165.460009,-20.800022],[165.020036,-20.459991],[164.459967,-20.120012],[164.029606,-20.105646],[164.167995,-20.444747],[164.829815,-21.14982],[165.474375,-21.679607],[166.189732,-22.129708],[166.740035,-22.399976],[167.120011,-22.159991]],[[174.612009,-36.156397],[174.32939,-35.265496],[173.551298,-35.006183],[173.007042,-34.450662],[172.636005,-34.529107],[173.054171,-35.237125],[173.840997,-36.121981],[174.319004,-36.534824],[174.292028,-36.711092],[174.697017,-37.381129],[174.743474,-38.027808],[174.574802,-38.797683],[173.852262,-39.146602],[173.824047,-39.508854],[174.900157,-39.908933],[175.22763,-40.459236],[174.650973,-41.281821],[175.067898,-41.425895],[175.239567,-41.688308],[176.01244,-41.289624],[176.508017,-40.604808],[176.885824,-40.065978],[177.032946,-39.879943],[176.939981,-39.449736],[177.206993,-39.145776],[177.97046,-39.166343],[178.274731,-38.582813],[178.517094,-37.695373],[178.010354,-37.579825],[177.438813,-37.961248],[176.763195,-37.881253],[175.95849,-37.555382],[175.808887,-36.798942],[175.357596,-36.526194],[175.336616,-37.209098],[174.612009,-36.156397]],[[173.020375,-40.919052],[172.79858,-40.493962],[172.097227,-40.956104],[171.948709,-41.514417],[171.569714,-41.767424],[171.12509,-42.512754],[170.52492,-43.031688],[169.667815,-43.555326],[168.949409,-43.935819],[168.303763,-44.123973],[167.046424,-45.110941],[166.509144,-45.852705],[166.676886,-46.219917],[167.763745,-46.290197],[168.411354,-46.619945],[169.332331,-46.641235],[169.831422,-46.355775],[170.616697,-45.908929],[171.185138,-44.897104],[171.452925,-44.242519],[172.308584,-43.865694],[173.080113,-43.853344],[172.711246,-43.372288],[173.22274,-42.970038],[173.876447,-42.233184],[174.248517,-41.770008],[174.247587,-41.349155],[173.958405,-40.926701],[173.247234,-41.331999],[173.020375,-40.919052]],[[145.397978,-40.792549],[144.743755,-40.703975],[144.718071,-41.162552],[145.29509,-42.03361],[145.43193,-42.693776],[146.048378,-43.549745],[146.663327,-43.580854],[146.870343,-43.634597],[147.564564,-42.937689],[147.914052,-43.211522],[148.017301,-42.407024],[148.359865,-42.062445],[148.289068,-40.875438],[147.689259,-40.808258],[146.908584,-41.000546],[146.364121,-41.137695],[145.397978,-40.792549]],[[50.056511,-13.555761],[49.808981,-12.895285],[49.543519,-12.469833],[49.194651,-12.040557],[48.863509,-12.487868],[48.84506,-13.089175],[48.293828,-13.784068],[47.869047,-13.663869],[48.005215,-14.091233],[47.70513,-14.594303],[46.882183,-15.210182],[46.312243,-15.780018],[45.872994,-15.793454],[45.502732,-15.974373],[44.944937,-16.179374],[44.446517,-16.216219],[44.312469,-16.850496],[43.963084,-17.409945],[44.042976,-18.331387],[44.232422,-18.961995],[44.464397,-19.435454],[44.374325,-20.072366],[43.89637,-20.830459],[43.893683,-21.163307],[43.433298,-21.336475],[43.254187,-22.057413],[43.345654,-22.776904],[43.697778,-23.574116],[43.763768,-24.460677],[44.03972,-24.988345],[44.833574,-25.346101],[45.409508,-25.601434],[46.282478,-25.178463],[47.095761,-24.94163],[47.547723,-23.781959],[47.930749,-22.391501],[48.548541,-20.496888],[49.041792,-19.118781],[49.435619,-17.953064],[49.498612,-17.106036],[49.774564,-16.875042],[49.863344,-16.451037],[49.672607,-15.710204],[49.860606,-15.414253],[50.200275,-16.000263],[50.377111,-15.706069],[50.476537,-15.226512],[50.217431,-14.758789],[50.056511,-13.555761]],[[162.119025,-10.482719],[161.917383,-10.446701],[161.319797,-10.204751],[161.700032,-10.820011],[162.398646,-10.826367],[162.119025,-10.482719]],[[134.143368,-1.151867],[133.985548,-0.78021],[132.380116,-0.369538],[131.867538,-0.695461],[130.519558,-0.93772],[130.94284,-1.432522],[131.836222,-1.617162],[132.232373,-2.212526],[133.696212,-2.214542],[133.780031,-2.479848],[133.066845,-2.460418],[131.989804,-2.820551],[132.753789,-3.311787],[132.756941,-3.746283],[132.983956,-4.112979],[133.367705,-4.024819],[133.66288,-3.538853],[135.164598,-4.462931],[135.98925,-4.546544],[137.92784,-5.393366],[138.407914,-6.232849],[138.668621,-7.320225],[138.039099,-7.597882],[137.614474,-8.411683],[138.881477,-8.380935],[139.127767,-8.096043],[140.143415,-8.297168],[141.033852,-9.117893],[142.068259,-9.159596],[142.628431,-9.326821],[143.413913,-8.983069],[143.286376,-8.245491],[143.897088,-7.91533],[144.744168,-7.630128],[146.048481,-8.067414],[146.567881,-8.942555],[147.135443,-9.492444],[147.913018,-10.130441],[148.923138,-10.280923],[149.78231,-10.393267],[150.028393,-10.652476],[150.690575,-10.582713],[150.801628,-10.293687],[149.738798,-9.872937],[150.038728,-9.684318],[149.266631,-9.514406],[149.306835,-9.071436],[148.734105,-9.104664],[148.084636,-8.044108],[147.191874,-7.388024],[146.970905,-6.721657],[147.891108,-6.614015],[147.648073,-6.083659],[145.981922,-5.465609],[145.829786,-4.876498],[145.27318,-4.373738],[144.583971,-3.861418],[142.735247,-3.289153],[141.00021,-2.600151],[139.926684,-2.409052],[139.184921,-2.051296],[138.329727,-1.702686],[137.440738,-1.703513],[136.293314,-2.307042],[135.457603,-3.367753],[134.422627,-2.769185],[134.143368,-1.151867]],[[153.140038,-4.499983],[153.019994,-3.980015],[152.640017,-3.659983],[152.239989,-3.240009],[151.820015,-2.999972],[151.479984,-2.779985],[150.939965,-2.500002],[150.66205,-2.741486],[151.384279,-3.035422],[151.953237,-3.462062],[152.406026,-3.789743],[152.638673,-4.176127],[152.827292,-4.766427],[153.140038,-4.499983]],[[151.982796,-5.478063],[152.318693,-4.867661],[152.338743,-4.312966],[152.136792,-4.14879],[151.537862,-4.167807],[151.647881,-4.757074],[151.089672,-5.113693],[150.807467,-5.455842],[150.236908,-5.53222],[150.139756,-5.001348],[149.99625,-5.026101],[149.845562,-5.505503],[149.298412,-5.583742],[148.401826,-5.437756],[148.318937,-5.747142],[148.890065,-6.02604],[149.709963,-6.316513],[150.241197,-6.317754],[150.754447,-6.083763],[151.30139,-5.840728],[151.459107,-5.56028],[151.982796,-5.478063]],[[155.880026,-6.819997],[156.019965,-6.540014],[155.547746,-6.200655],[155.062918,-5.566792],[154.759991,-5.339984],[154.652504,-5.042431],[154.514114,-5.139118],[154.729192,-5.900828],[155.166994,-6.535931],[155.599991,-6.919991],[155.880026,-6.819997]],[[157.538426,-7.34782],[157.14,-7.021638],[156.542828,-6.599338],[156.491358,-6.765943],[156.90203,-7.176874],[157.33942,-7.404767],[157.538426,-7.34782]],[[159.875027,-8.33732],[159.640003,-8.020027],[158.820001,-7.560003],[158.359978,-7.320018],[158.21115,-7.421872],[158.586114,-7.754824],[159.133677,-8.114181],[159.917402,-8.53829],[159.875027,-8.33732]],[[161.679982,-9.599982],[161.280006,-9.120011],[160.920028,-8.320009],[160.579997,-8.320009],[160.788253,-8.917543],[161.529397,-9.784312],[161.679982,-9.599982]],[[160.852229,-9.872937],[160.688518,-9.610162],[160.362956,-9.400304],[159.702945,-9.24295],[159.640003,-9.63998],[159.849447,-9.794027],[160.462588,-9.89521],[160.852229,-9.872937]],[[124.43595,-10.140001],[125.08852,-9.393173],[125.925885,-9.106007],[126.967992,-8.668256],[127.335928,-8.397317],[126.957243,-8.273345],[126.644704,-8.398247],[125.947072,-8.432095],[125.086246,-8.656887],[124.968682,-8.89279],[123.980009,-9.290027],[123.550009,-9.900016],[123.459989,-10.239995],[123.579982,-10.359987],[124.43595,-10.140001]],[[120.715609,-10.239581],[120.775502,-9.969675],[120.425756,-9.665921],[119.90031,-9.36134],[118.967808,-9.557969],[120.295014,-10.25865],[120.715609,-10.239581]],[[117.900018,-8.095681],[117.632024,-8.449303],[117.083737,-8.457158],[116.740141,-9.032937],[117.277731,-9.040895],[117.970402,-8.906639],[119.126507,-8.705825],[118.87846,-8.280683],[118.260616,-8.362383],[117.900018,-8.095681]],[[122.903537,-8.094234],[122.007365,-8.46062],[121.341669,-8.53674],[120.715092,-8.236965],[119.920929,-8.444859],[119.924391,-8.810418],[121.254491,-8.933666],[122.756983,-8.649808],[122.903537,-8.094234]],[[108.623479,-6.777674],[108.486846,-6.421985],[108.072091,-6.345762],[107.265009,-5.954985],[106.051646,-5.895919],[105.365486,-6.851416],[106.280624,-6.9249],[106.454102,-7.3549],[108.277763,-7.766657],[108.693655,-7.6416],[109.427667,-7.740664],[110.58615,-8.122605],[111.522061,-8.302129],[112.559672,-8.376181],[113.464734,-8.348947],[114.564511,-8.751817],[115.705527,-8.370807],[114.478935,-7.776528],[112.978768,-7.594213],[112.614811,-6.946036],[110.759576,-6.465186],[110.539227,-6.877358],[108.623479,-6.777674]],[[134.724624,-6.214401],[134.727002,-5.737582],[134.499625,-5.445042],[134.290336,-5.783058],[134.112776,-6.142467],[134.210134,-6.895238],[134.724624,-6.214401]],[[105.817655,-5.852356],[105.857446,-4.305525],[106.108593,-3.061777],[105.622111,-2.428844],[104.887893,-2.340425],[104.53949,-1.782372],[104.369991,-1.084843],[104.010789,-1.059212],[103.437645,-0.711946],[103.838396,0.104542],[103.07684,0.561361],[102.498271,1.3987],[101.658012,2.083697],[100.641434,2.099381],[99.693998,3.174329],[99.142559,3.59035],[98.369169,4.26837],[97.484882,5.246321],[95.936863,5.439513],[95.293026,5.479821],[95.380876,4.970782],[96.424017,3.86886],[97.176942,3.308791],[97.699598,2.453184],[98.601351,1.823507],[98.970011,1.042882],[99.26374,0.183142],[100.141981,-0.650348],[100.902503,-2.050262],[101.399113,-2.799777],[102.156173,-3.614146],[102.584261,-4.220259],[103.868213,-5.037315],[104.710384,-5.873285],[105.817655,-5.852356]],[[117.875627,1.827641],[118.04833,2.28769],[117.313232,3.234428],[117.882035,4.137551],[118.618321,4.478202],[118.439727,4.966519],[119.110694,5.016128],[119.181904,5.407836],[118.347691,5.708696],[117.689075,5.98749],[117.643393,6.422166],[117.129626,6.928053],[116.725103,6.924771],[116.220741,6.143191],[115.45071,5.44773],[114.599961,4.900011],[114.204017,4.525874],[113.712935,3.893509],[112.995615,3.102395],[111.796928,2.885897],[111.370081,2.697303],[111.168853,1.850637],[110.396135,1.663775],[109.66326,2.006467],[109.069136,1.341934],[108.952658,0.415375],[109.091874,-0.459507],[109.571948,-1.314907],[110.070936,-1.592874],[110.223846,-2.934032],[111.04824,-3.049426],[111.703291,-2.994442],[112.068126,-3.478392],[113.256994,-3.118776],[113.755672,-3.43917],[114.468652,-3.495704],[114.864803,-4.106984],[116.000858,-3.657037],[116.148084,-4.012726],[116.533797,-2.483517],[116.560048,-1.487661],[117.521644,-0.803723],[117.478339,0.102475],[117.811858,0.784242],[118.996747,0.902219],[117.875627,1.827641]],[[125.240501,1.419836],[125.065989,1.643259],[124.077522,0.917102],[122.927567,0.875192],[121.666817,1.013944],[120.885779,1.309223],[120.035702,0.566477],[119.825999,0.154254],[119.323394,-1.353147],[119.180974,-2.147104],[118.767769,-2.801999],[119.078344,-3.487022],[119.498835,-3.494412],[119.653606,-4.459417],[119.366906,-5.379878],[119.796543,-5.6734],[120.430717,-5.528241],[120.390047,-4.097579],[120.305453,-2.931604],[120.972389,-2.627643],[120.898182,-3.602105],[121.619171,-4.188478],[121.489463,-4.574553],[121.738234,-4.851331],[122.719569,-4.464172],[122.236394,-5.282933],[122.628515,-5.634591],[123.162333,-5.340604],[123.170963,-4.683693],[122.271896,-3.5295],[122.454572,-3.186058],[121.508274,-1.904483],[122.38853,-1.516858],[122.822715,-0.930951],[123.258399,-1.076213],[123.340565,-0.615673],[121.475821,-0.955962],[120.935905,-1.408906],[120.04087,-0.519658],[120.183083,0.237247],[121.056725,0.381217],[122.723083,0.431137],[123.685505,0.235593],[124.437035,0.427881],[125.240501,1.419836]],[[128.688249,1.132386],[128.594559,1.540811],[128.004156,1.628531],[127.932378,2.174596],[127.600512,1.810691],[127.39949,1.011722],[127.696475,-0.266598],[128.100016,-0.899996],[128.379999,-0.780004],[127.968034,-0.252077],[128.12017,0.356413],[128.635952,0.258486],[128.688249,1.132386]],[[130.471344,-3.093764],[129.370998,-2.802154],[128.135879,-2.84365],[127.898891,-3.393436],[128.590684,-3.428679],[129.155249,-3.362637],[129.990547,-3.446301],[130.834836,-3.858472],[130.471344,-3.093764]],[[127.249215,-3.459065],[127.000651,-3.129318],[125.989034,-3.177273],[126.183802,-3.607376],[126.874923,-3.790983],[127.249215,-3.459065]],[[126.376814,8.414706],[126.306637,8.782487],[126.222714,9.286074],[125.412118,9.760335],[125.471391,8.986997],[124.764612,8.960409],[124.60147,8.514158],[123.841154,8.240324],[123.487688,8.69301],[122.942398,8.316237],[122.312359,8.034962],[121.919928,7.192119],[122.085499,6.899424],[122.825506,7.457375],[123.296071,7.418876],[123.610212,7.833527],[124.243662,7.36061],[123.93872,6.885136],[124.219788,6.161355],[125.396512,5.581003],[125.683161,6.049657],[125.363852,6.786485],[125.831421,7.293715],[126.196773,6.274294],[126.537424,7.189381],[126.478513,7.750354],[126.376814,8.414706]],[[118.504581,9.316383],[119.029458,10.003653],[119.689677,10.554291],[119.511496,11.369668],[118.987342,10.376292],[118.386914,9.6845],[117.664477,9.066889],[117.174275,8.3675],[118.504581,9.316383]],[[121.883548,11.891755],[122.03837,11.415841],[121.967367,10.905691],[122.00261,10.441017],[122.637714,10.741308],[123.100838,11.165934],[123.120217,11.58366],[122.483821,11.582187],[121.883548,11.891755]],[[125.502552,12.162695],[125.227116,12.535721],[124.266762,12.557761],[124.87799,11.79419],[124.891013,11.415583],[124.302522,11.495371],[124.459101,10.88993],[124.760168,10.837995],[124.801819,10.134679],[125.277449,10.358722],[125.032761,10.975816],[125.011884,11.311455],[125.783465,11.046122],[125.502552,12.162695]],[[123.982438,10.278779],[124.077936,11.232726],[123.337774,10.267384],[123.49885,10.940624],[122.947411,10.881868],[122.837081,10.261157],[122.586089,9.981045],[122.380055,9.713361],[122.995883,9.022189],[123.309921,9.318269],[123.623183,9.950091],[123.982438,10.278779]],[[121.527394,13.06959],[121.180128,13.429697],[120.323436,13.466413],[120.833896,12.704496],[121.26219,12.20556],[121.527394,13.06959]],[[121.321308,18.504065],[120.715867,18.505227],[120.390047,17.599081],[120.286488,16.034629],[119.883773,16.363704],[119.920929,15.406347],[120.070429,14.970869],[120.564145,14.396279],[120.693336,14.756671],[120.991819,14.525393],[120.679384,14.271016],[120.628637,13.857656],[121.126385,13.636687],[122.03465,13.784482],[122.671355,13.185836],[122.928652,13.55292],[123.298035,13.027526],[124.077419,12.536677],[124.181289,12.997527],[123.855107,13.237771],[123.950295,13.782131],[122.701276,14.336541],[122.258925,14.218202],[121.728829,14.328376],[121.50507,15.124814],[121.662786,15.931018],[122.252311,16.262444],[122.515654,17.093505],[122.174279,17.810283],[122.336957,18.224883],[122.246006,18.47895],[121.937601,18.218552],[121.321308,18.504065]],[[110.339188,18.678395],[110.570647,19.255879],[111.010051,19.69593],[110.786551,20.077534],[110.211599,20.101254],[109.119056,19.821039],[108.626217,19.367888],[108.655208,18.507682],[109.47521,18.197701],[110.339188,18.678395]],[[70.28,-49.71],[70.56,-49.255],[70.525,-49.065],[69.58,-48.94],[68.935,-48.625],[68.8675,-48.83],[68.72,-49.2425],[68.745,-49.775],[70.28,-49.71]],[[301.45,-51.1],[300.85,-51.5],[300,-51.25],[298.8,-51.85],[299.3,-52.3],[300.15,-51.85],[300.6,-52.2],[301.95,-51.9],[302.25,-51.55],[301.45,-51.1]],[[291.36589,-52.63625],[290.65435,-52.5183],[289.73252,-52.93123],[289.40822,-53.61583],[288.89227,-54.07433],[287.56582,-53.7154],[286.1619,-53.04743],[285.33747,-52.83749],[286.7148,-53.95752],[287.7361,-54.49514],[288.99432,-55.05383],[290.04191,-55.19843],[290.7679,-55.49906],[291.85137,-55.61183],[292.70897,-55.30124],[293.04008,-54.89681],[293.55,-55.25],[294.5,-55.2],[294.95,-54.7],[293.55,-54.45],[292.25,-53.85],[291.75,-53.1],[291.36599,-52.63637],[291.36589,-52.63625]],[[204.45789,19.08348],[204.77783,19.23972],[205.16853,19.45328],[205.19259,19.50871],[204.93774,19.8591],[204.77548,19.99302],[204.59786,20.07975],[204.21495,20.2487],[204.13892,20.26721],[204.08093,20.17395],[204.14992,19.97729],[203.97632,19.81422],[203.92653,19.70294],[204.09194,19.33888],[204.06335,19.05939],[204.31183,18.91619],[204.45789,19.08348]],[[203.92074,20.64397],[204.00434,20.76404],[203.74289,20.91745],[203.38742,21.01249],[203.28945,20.92676],[203.29833,20.8643],[203.41327,20.783],[203.58555,20.57241],[203.92074,20.64397]],[[203.24176,21.17684],[202.74973,21.21958],[202.67479,21.09777],[203.21067,21.06873],[203.24176,21.17684]],[[202.34717,21.32217],[202.05839,21.65272],[201.9748,21.71696],[201.70735,21.57912],[201.7462,21.53919],[201.87333,21.31244],[202.2214,21.27729],[202.29297,21.26442],[202.34717,21.32217]],[[200.65488,21.982],[200.63431,22.21494],[200.4038,22.23618],[200.25123,22.1382],[200.19949,22.06533],[200.53628,21.88299],[200.65488,21.982]],[[236.489998,48.510011],[236.077491,49.062484],[235.079232,49.475275],[234.584998,49.950001],[234.244993,50.295018],[233.304999,50.400903],[232.691419,50.552574],[231.641586,50.770648],[231.555416,50.539138],[231.940664,49.994959],[232.970007,49.814996],[233.149996,49.53],[234.045006,49.179996],[234.344987,48.825005],[235.987109,48.370846],[236.489998,48.510011]],[[227.289992,54.040009],[226.819996,54.169975],[226.760336,53.85108],[226.945389,53.411469],[227.450008,53.100015],[227.819572,52.639707],[228.42217,52.182371],[228.820957,52.180433],[227.95052,52.984621],[228.25001,54.120004],[227.289992,54.040009]],[[206.993686,57.115842],[207.858853,57.591059],[207.435209,57.901427],[206.771271,57.968968],[206.23722,57.816575],[205.329007,57.461196],[205.483597,56.992749],[205.99491,56.734677],[206.993686,57.115842]],[[194.420836,59.909987],[194.32557,60.293607],[193.532208,60.38417],[192.544723,60.213069],[193.151663,59.941406],[193.80723,59.754441],[194.420836,59.909987]],[[188.268343,63.782515],[188.208889,63.405846],[188.446937,63.317789],[189.328614,63.375822],[189.709444,63.194438],[190.47056,62.976931],[191.228059,63.188598],[191.310561,63.297506],[190.317495,63.431116],[189.508888,63.694975],[188.885566,63.592191],[188.268343,63.782515]],[[105.07547,78.30689],[105.37243,78.71334],[102.837815,79.28129],[102.08635,79.34641],[101.2649,79.23399],[99.43814,77.921],[105.07547,78.30689]],[[291.548654,-70.955823],[291.274459,-70.505153],[290.941482,-70.074016],[290.510578,-69.623346],[290.275553,-69.251017],[289.746748,-68.87874],[288.826185,-69.035475],[288.258209,-69.505782],[288.27782,-70.309196],[288.219038,-70.681473],[287.925283,-71.190951],[286.769669,-71.15178],[286.084181,-71.269344],[286.084181,-71.269345],[284.987375,-71.661258],[285.046105,-72.072757],[285.80996,-72.366693],[286.926378,-72.229492],[288.1015,-72.092343],[287.611866,-72.484257],[288.924111,-72.503842],[290.040529,-72.307885],[291.215703,-72.170736],[291.489872,-71.798407],[291.666166,-71.406493],[291.548654,-70.955823]],[[261.01845,-71.933334],[259.569081,-71.854993],[258.296033,-71.717792],[257.669275,-71.894164],[257.669275,-71.894164],[258.198132,-72.305663],[259.216545,-72.50162],[260.567987,-72.442864],[261.801917,-72.482035],[263.016235,-72.442864],[263.79965,-72.521205],[263.212063,-71.952971],[262.115257,-72.070535],[261.01845,-71.933334]],[[234.440434,-73.481353],[233.441528,-73.246226],[232.71687,-73.461768],[232.71687,-73.461769],[234.087819,-73.736118],[235.380531,-73.834097],[235.968118,-73.873268],[234.440434,-73.481353]],[[238.788489,-73.50099],[237.593755,-73.324619],[237.378265,-73.657777],[237.378265,-73.657778],[238.37717,-74.010468],[239.767783,-74.08881],[240.707881,-73.834097],[241.275857,-73.481353],[240.081149,-73.657725],[238.788489,-73.50099]],[[200.791816,-79.497059],[200.517595,-79.046338],[199.753792,-78.693645],[198.754887,-78.380176],[196.894199,-78.223338],[196.287104,-78.595667],[196.287104,-78.595667],[196.933396,-78.869966],[196.972592,-78.928774],[197.560153,-79.281465],[198.872399,-79.634209],[200.791816,-79.497059]],[[314.845242,-78.04707],[313.337143,-77.831476],[311.848604,-78.04707],[311.339384,-78.047019],[311.339384,-78.047018],[310.693041,-78.458569],[310.085869,-78.811209],[309.635405,-79.183487],[309.008674,-79.614623],[308.146866,-79.94773],[306.012009,-80.222028],[305.835741,-80.633528],[307.148012,-80.966685],[309.517893,-81.025442],[311.613579,-80.829485],[313.493826,-80.594357],[315.119463,-80.339644],[316.666733,-80.026123],[316.627562,-79.516645],[316.51005,-79.08556],[316.079172,-78.478103],[314.845242,-78.04707]],[[300.427905,-80.040179],[299.389881,-79.628679],[298.861024,-79.981371],[298.116754,-80.39287],[295.962312,-80.294944],[293.709969,-80.255773],[294.258334,-80.549657],[294.258334,-80.588827],[295.511875,-80.921934],[297.744607,-80.863178],[299.840344,-81.000327],[300.134151,-80.549657],[300.427905,-80.040179]],[[121.175632,22.790857],[121.777818,24.394274],[121.951244,24.997596],[121.495044,25.295459],[120.69468,24.538451],[120.106189,23.556263],[120.220083,22.814861],[120.74708,21.970571],[121.175632,22.790857]],[[140.976388,37.142074],[140.959489,38.174001],[141.884601,39.180865],[141.914263,39.991616],[141.368973,41.37856],[140.305783,41.195005],[139.883379,40.563312],[140.05479,39.438807],[139.426405,38.215962],[138.857602,37.827485],[137.390612,36.827391],[136.723831,37.304984],[135.677538,35.527134],[134.608301,35.731618],[132.617673,35.433393],[131.884229,34.749714],[130.878451,34.232743],[130.353935,33.604151],[129.408463,33.296056],[129.814692,32.61031],[130.447676,32.319475],[130.20242,31.418238],[130.686318,31.029579],[131.33279,31.450355],[132.000036,33.149992],[130.986145,33.885761],[132.156771,33.904933],[133.340316,34.375938],[135.079435,34.596545],[135.120983,33.849071],[135.792983,33.464805],[137.217599,34.606286],[138.975528,34.6676],[140.253279,35.138114],[140.774074,35.842877],[140.59977,36.343983],[140.976388,37.142074]],[[134.638428,34.149234],[133.904106,34.364931],[133.492968,33.944621],[132.924373,34.060299],[132.371176,33.463642],[132.363115,32.989382],[133.014858,32.704567],[133.280268,33.28957],[133.79295,33.521985],[134.203416,33.201178],[134.766379,33.806335],[134.638428,34.149234]],[[143.910162,44.1741],[143.14287,44.510358],[141.967645,45.551483],[141.671952,44.772125],[141.380549,43.388825],[140.312087,43.333273],[139.817544,42.563759],[139.955106,41.569556],[141.067286,41.584594],[141.611491,42.678791],[143.18385,41.995215],[144.059662,42.988358],[145.543137,43.262088],[145.320825,44.384733],[144.613427,43.960883],[143.910162,44.1741]],[[143.648007,50.7476],[143.235268,51.75666],[143.260848,52.74076],[142.914616,53.704578],[142.654786,54.365881],[142.209749,54.225476],[142.606934,53.762145],[141.682546,53.301966],[141.594076,51.935435],[142.179983,50.952342],[142.1358,49.615163],[141.904445,48.859189],[142.018443,47.780133],[141.906925,46.805929],[142.09203,45.966755],[142.747701,46.740765],[143.505277,46.137908],[143.533492,46.836728],[142.558668,47.861575],[143.173928,49.306551],[144.654148,48.976391],[143.648007,50.7476]],[[81.21802,6.197141],[81.637322,6.481775],[81.787959,7.523055],[81.304319,8.564206],[80.838818,9.268427],[80.147801,9.824078],[79.695167,8.200843],[79.872469,6.763463],[80.348357,5.96837],[81.21802,6.197141]],[[15.520376,38.231155],[14.761249,38.143874],[13.741156,38.034966],[12.570944,38.126381],[12.431004,37.61295],[13.826733,37.104531],[14.335229,36.996631],[15.099988,36.619987],[15.309898,37.134219],[15.160243,37.444046],[15.520376,38.231155]],[[23.69998,35.705004],[23.514978,35.279992],[24.735007,35.084991],[24.724982,34.919988],[26.164998,35.004995],[26.290003,35.29999],[25.745023,35.179998],[25.769208,35.354018],[25.025015,35.424996],[24.246665,35.368022],[23.69998,35.705004]],[[34.576474,35.671596],[33.667227,35.373216],[32.946961,35.386703],[32.802474,35.145504],[32.73178,35.140026],[32.256667,35.103232],[32.490296,34.701655],[32.979827,34.571869],[34.004881,34.978098],[33.973617,35.058506],[33.900804,35.245756],[34.576474,35.671596]],[[9.210012,41.209991],[8.709991,40.899984],[8.159998,40.950007],[8.388253,40.378311],[8.428302,39.171847],[8.806936,38.906618],[9.214818,39.240473],[9.669519,39.177376],[9.809975,40.500009],[9.210012,41.209991]],[[9.560016,42.152492],[9.390001,43.009985],[8.746009,42.628122],[8.544213,42.256517],[8.775723,41.583612],[9.229752,41.380007],[9.560016,42.152492]],[[12.690006,55.609991],[12.370904,56.111407],[10.903914,55.779955],[11.043543,55.364864],[12.089991,54.800015],[12.690006,55.609991]]]}}],"style":{"stroke":"#000000","fill":"#3498DB","stroke-width":1,"fill-opacity":0.8}} \ No newline at end of file