Wheelchair Ramp Cost Calculator

Wheelchair Ramp Cost Calculator & Guide :root { –primary-color: #004a99; –background-color: #f8f9fa; –card-background: #ffffff; –text-color: #333; –border-color: #ddd; –shadow-color: rgba(0, 0, 0, 0.1); } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: var(–background-color); color: var(–text-color); margin: 0; padding: 0; line-height: 1.6; } .container { max-width: 960px; margin: 20px auto; padding: 20px; background-color: var(–card-background); border-radius: 8px; box-shadow: 0 2px 10px var(–shadow-color); } h1, h2, h3 { color: var(–primary-color); text-align: center; margin-bottom: 20px; } h1 { font-size: 2.2em; } h2 { font-size: 1.8em; margin-top: 30px; border-bottom: 2px solid var(–primary-color); padding-bottom: 5px; } h3 { font-size: 1.4em; margin-top: 25px; } .loan-calc-container { background-color: var(–card-background); padding: 25px; border-radius: 8px; box-shadow: 0 2px 8px var(–shadow-color); margin-bottom: 30px; } .input-group { margin-bottom: 20px; display: flex; flex-direction: column; } .input-group label { display: block; margin-bottom: 8px; font-weight: bold; color: var(–primary-color); } .input-group input[type="number"], .input-group select { width: 100%; padding: 10px; border: 1px solid var(–border-color); border-radius: 4px; box-sizing: border-box; font-size: 1em; } .input-group input[type="number"]:focus, .input-group select:focus { border-color: var(–primary-color); outline: none; box-shadow: 0 0 0 2px rgba(0, 74, 153, 0.2); } .input-group .helper-text { font-size: 0.85em; color: #666; margin-top: 5px; } .error-message { color: #dc3545; font-size: 0.85em; margin-top: 5px; min-height: 1.1em; /* Prevent layout shifts */ } .button-group { display: flex; justify-content: space-between; margin-top: 25px; flex-wrap: wrap; gap: 10px; } button { padding: 12px 20px; background-color: var(–primary-color); color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 1em; transition: background-color 0.3s ease; flex: 1; /* Distribute space */ min-width: 150px; /* Prevent buttons from becoming too small */ } button:hover { background-color: #003366; } button.secondary { background-color: #6c757d; } button.secondary:hover { background-color: #5a6268; } #results { margin-top: 30px; padding: 20px; background-color: #e9ecef; border-radius: 8px; border: 1px solid var(–border-color); } #results h3 { margin-top: 0; color: var(–primary-color); text-align: left; } .result-item { margin-bottom: 15px; font-size: 1.1em; } .result-item strong { color: var(–primary-color); display: inline-block; min-width: 200px; /* Align values */ } .primary-result { font-size: 1.8em; font-weight: bold; color: var(–primary-color); text-align: center; margin-top: 10px; padding: 15px; background-color: #ffffff; border-radius: 8px; border: 1px solid var(–primary-color); } .formula-explanation { font-size: 0.95em; color: #555; margin-top: 15px; padding: 10px; background-color: #f1f3f5; border-left: 3px solid var(–primary-color); } table { width: 100%; border-collapse: collapse; margin-top: 20px; margin-bottom: 20px; box-shadow: 0 2px 8px var(–shadow-color); } th, td { padding: 12px 15px; text-align: left; border: 1px solid var(–border-color); } thead { background-color: var(–primary-color); color: white; } tbody tr:nth-child(even) { background-color: #f2f2f2; } caption { font-size: 0.9em; color: #666; margin-bottom: 10px; text-align: left; font-style: italic; } .table-scroll-wrapper { overflow-x: auto; } canvas { max-width: 100%; height: auto; display: block; margin: 20px auto; border: 1px solid var(–border-color); border-radius: 4px; } .article-content { margin-top: 40px; padding: 20px; background-color: var(–card-background); border-radius: 8px; box-shadow: 0 2px 10px var(–shadow-color); } .article-content p { margin-bottom: 15px; } .article-content ul { margin-left: 20px; margin-bottom: 15px; } .article-content li { margin-bottom: 8px; } .article-content a { color: var(–primary-color); text-decoration: none; } .article-content a:hover { text-decoration: underline; } .internal-links-list { list-style: none; padding: 0; } .internal-links-list li { margin-bottom: 10px; } .internal-links-list a { font-weight: bold; } .internal-links-list span { font-size: 0.9em; color: #555; display: block; margin-top: 3px; } @media (max-width: 768px) { .container { margin: 10px; padding: 15px; } h1 { font-size: 1.8em; } h2 { font-size: 1.5em; } h3 { font-size: 1.2em; } button { flex: 1 1 100%; /* Stack buttons on smaller screens */ min-width: unset; } .button-group { flex-direction: column; align-items: center; } .result-item strong { min-width: unset; display: block; margin-bottom: 5px; } }

Wheelchair Ramp Cost Calculator

Estimate the cost of installing a wheelchair ramp for your home or business.

Ramp Cost Estimator

Enter the total horizontal length of the ramp needed.
Standard width is 36 inches.
Wood Aluminum Steel Concrete
Select the primary material for the ramp.
Enter the desired slope ratio (e.g., 1:12 means 1 inch rise for every 12 inches run).
Simple (e.g., ground level access) Moderate (e.g., minor landscaping needed) Complex (e.g., significant site prep, multiple levels)
Consider site preparation, stairs, or uneven terrain.
Estimated cost for extras like handrails, landings, or lighting (in USD).

Estimated Ramp Cost Breakdown

Material Cost: $0.00
Labor Cost: $0.00
Additional Features Cost: $0.00
Total Estimated Cost: $0.00
$0.00
How it's calculated:

The total cost is an estimate based on material type, ramp dimensions, slope, installation complexity, and any additional features. Material costs vary significantly by type and market prices. Labor is estimated based on complexity and time. The primary result is the Total Estimated Cost.

Material Cost Estimates per Linear Foot (36″ Width)
Material Type Estimated Cost/Foot (USD) Notes
Wood $50 – $150 Requires regular maintenance.
Aluminum $100 – $300 Lightweight, durable, low maintenance.
Steel $150 – $400 Very strong, can be heavy, prone to rust if not treated.
Concrete $100 – $250 Permanent, durable, requires professional installation.

Cost Breakdown by Component

Chart showing the proportion of Material, Labor, and Additional Features costs.

Understanding Wheelchair Ramp Costs

What is a Wheelchair Ramp Cost Calculation?

A wheelchair ramp cost calculation is an estimation tool designed to help individuals and businesses understand the potential expenses involved in installing a ramp that provides accessible entry for people using wheelchairs, scooters, or other mobility devices. This calculation considers various factors, including the ramp's length, width, material, slope, complexity of installation, and any additional features like handrails or landings. The goal is to provide a realistic budget range for accessibility improvements, ensuring compliance with regulations like the Americans with Disabilities Act (ADA) where applicable.

Estimating the cost of a wheelchair ramp is crucial for planning home modifications, commercial accessibility upgrades, or public space improvements. It helps in budgeting, comparing quotes from different contractors, and making informed decisions about the most suitable and cost-effective ramp solution. Understanding the variables that influence the final price is key to managing expectations and achieving a successful accessibility project.

Wheelchair Ramp Cost Formula and Mathematical Explanation

The core of the wheelchair ramp cost calculator relies on a multi-faceted formula that synthesizes several key inputs. While exact pricing varies by region and contractor, a common approach involves estimating costs for materials, labor, and any extras.

Estimated Total Cost = (Material Cost per Foot * Ramp Length) + Labor Cost + Additional Features Cost

Let's break down each component:

  • Material Cost: This is calculated by multiplying the cost per linear foot of the chosen material (wood, aluminum, steel, concrete) by the total length of the ramp. The cost per foot varies significantly based on the material's durability, maintenance needs, and market price. For example, aluminum ramps are typically more expensive per foot than basic wood ramps but offer greater longevity and less maintenance.
  • Labor Cost: This is often the most variable component. It's influenced by the complexity of the installation site (e.g., steep terrain, existing structures, need for excavation), the required slope ratio (steeper slopes might require more complex support structures), and the total time estimated for installation. Simpler installations on level ground with minimal site prep will cost less than complex projects requiring significant groundwork or custom fabrication. We often use a multiplier based on complexity (e.g., Simple: 1.5x Material Cost, Moderate: 2.5x Material Cost, Complex: 4x Material Cost) or an hourly rate estimation.
  • Additional Features Cost: This includes the cost of items beyond the basic ramp structure, such as handrails on one or both sides, landings for turns or resting, lighting for nighttime visibility, or specialized non-slip surfaces. These are typically added as a fixed sum or based on the linear footage of features like handrails.

The slope ratio (e.g., 1:12) is critical for determining the ramp's length. A 1:12 slope means for every 1 inch of vertical rise, the ramp needs 12 inches of horizontal run. Therefore, Ramp Length = Rise (inches) * Slope Ratio Denominator / 12. If the rise is not directly provided, it's often inferred from the context or assumed based on standard door heights.

Practical Examples (Real-World Use Cases)

Let's explore a few scenarios to illustrate how the wheelchair ramp cost calculator can be used:

Example 1: Simple Home Access

A homeowner needs a 10-foot long, 36-inch wide wooden ramp to overcome a 10-inch rise at their front door. The site is relatively level, making installation simple. They also want basic handrails on both sides.

  • Ramp Length: 10 ft
  • Ramp Width: 36 in
  • Material: Wood ($75/ft estimate)
  • Slope: 1:12 (consistent with 10″ rise over 10ft run)
  • Complexity: Simple
  • Additional Features: Handrails ($300 estimate)

Calculation:

  • Material Cost: 10 ft * $75/ft = $750
  • Labor Cost (Simple): ~$750 * 1.5 = $1125
  • Additional Features: $300
  • Total Estimated Cost: $750 + $1125 + $300 = $2175

This example highlights how a straightforward wooden ramp with basic features might fall within a moderate budget for home accessibility.

Example 2: Commercial Aluminum Ramp

A small business needs to make its entrance accessible. They require a 20-foot long, 36-inch wide aluminum ramp to cover a 20-inch rise. The installation involves some minor landscaping, classifying it as moderate complexity. No additional features are immediately needed.

  • Ramp Length: 20 ft
  • Ramp Width: 36 in
  • Material: Aluminum ($180/ft estimate)
  • Slope: 1:12 (consistent with 20″ rise over 20ft run)
  • Complexity: Moderate
  • Additional Features: $0

Calculation:

  • Material Cost: 20 ft * $180/ft = $3600
  • Labor Cost (Moderate): ~$3600 * 2.5 = $9000
  • Additional Features: $0
  • Total Estimated Cost: $3600 + $9000 + $0 = $12,600

This scenario demonstrates the higher cost associated with durable materials like aluminum and moderate installation complexity for commercial applications.

Example 3: Concrete Ramp with Landings

A community center requires a permanent concrete ramp solution. The total run needed is 30 feet to cover a 30-inch rise. The site requires significant preparation, and a turning landing is necessary mid-way, making it complex. The estimated cost for the landing and site prep is $1500.

  • Ramp Length: 30 ft
  • Ramp Width: 36 in
  • Material: Concrete ($175/ft estimate)
  • Slope: 1:12 (consistent with 30″ rise over 30ft run)
  • Complexity: Complex
  • Additional Features: Landing/Site Prep ($1500 estimate)

Calculation:

  • Material Cost: 30 ft * $175/ft = $5250
  • Labor Cost (Complex): ~$5250 * 4 = $21000
  • Additional Features: $1500
  • Total Estimated Cost: $5250 + $21000 + $1500 = $27,750

This example illustrates the substantial investment required for permanent, complex concrete structures, often seen in public or institutional settings.

How to Use This Wheelchair Ramp Cost Calculator

Using our wheelchair ramp cost calculator is straightforward. Follow these steps to get your estimated cost:

  1. Enter Ramp Length: Input the total horizontal distance the ramp needs to cover in feet.
  2. Enter Ramp Width: Specify the desired width of the ramp in inches. 36 inches is a common standard.
  3. Select Material Type: Choose the material you prefer from the dropdown menu (Wood, Aluminum, Steel, Concrete). Each has different cost implications and maintenance requirements.
  4. Input Slope Ratio: Enter the required slope ratio, typically expressed as 1:X (e.g., 1:12). This ensures the ramp is safe and compliant. If you know the rise (vertical height), you can calculate the required length using this ratio.
  5. Assess Installation Complexity: Select the level of difficulty for installation (Simple, Moderate, Complex) based on your site conditions.
  6. Add Additional Features: Enter any estimated costs for extras like handrails, landings, or lighting.
  7. Calculate: Click the "Calculate Cost" button.

The calculator will instantly display the estimated costs for materials, labor, and additional features, along with the total estimated cost. You can also use the "Reset" button to clear the fields and start over, or "Copy Results" to save the breakdown.

Key Factors That Affect Wheelchair Ramp Costs

Several elements significantly influence the final price of a wheelchair ramp installation. Understanding these factors can help you budget more accurately and discuss options with contractors:

  • Ramp Length and Rise: The greater the vertical height (rise) that needs to be overcome, the longer the ramp must be to maintain a safe slope. Longer ramps naturally require more materials and labor, increasing the overall cost.
  • Material Choice: As seen in the table and examples, different materials have vastly different price points. Wood is often the most affordable upfront but requires maintenance. Aluminum offers a good balance of cost, durability, and low maintenance. Steel is strong but heavier and can be costly. Concrete is a permanent solution but involves significant installation costs.
  • Ramp Width: While 36 inches is standard, wider ramps may be required in certain situations, increasing material usage and cost.
  • Slope Requirements: Regulations like ADA often mandate a maximum slope (e.g., 1:12). Achieving a gentle slope for a significant rise requires a substantial ramp length, impacting cost.
  • Installation Site Complexity: The terrain, existing landscaping, soil conditions, and accessibility of the site for construction crews and materials play a huge role. Installing a ramp on a steep hill or over uneven ground is far more complex and expensive than on a flat, clear surface.
  • Additional Features: Handrails, landings, gates, lighting, and specialized non-slip surfaces add to the material and labor costs. Handrails, especially, are often required for safety and compliance.
  • Permits and Professional Fees: Depending on your location and the scope of the project, you may need building permits, which incur fees. Hiring architects or specialized accessibility consultants also adds to the expense.
  • Labor Rates: Local labor costs vary significantly by region. Skilled contractors specializing in accessibility modifications may charge higher rates.

Considering these factors will help you refine your budget and communicate your needs effectively when seeking quotes for your wheelchair ramp installation.

Frequently Asked Questions (FAQ)

Q1: What is the average cost of a wheelchair ramp?

A: The average cost can range widely, from around $1,000 for a simple, short wooden ramp to over $15,000 for a long, complex aluminum or concrete ramp with extensive features. Our calculator provides a more personalized estimate based on your specific needs.

Q2: Are wheelchair ramps expensive?

A: The cost can be significant, especially for permanent solutions or when dealing with challenging site conditions. However, the expense is often necessary for ensuring accessibility and independence. Exploring different materials and simpler designs can help manage costs. Consider looking into accessibility grants or local programs that might offer financial assistance.

Q3: What is the ADA requirement for wheelchair ramp slope?

A: The Americans with Disabilities Act (ADA) generally recommends a maximum slope of 1:12, meaning 1 inch of vertical rise for every 12 inches of horizontal run. For steeper slopes, resting platforms are required. Always check local building codes for specific requirements.

Q4: How long does a wheelchair ramp typically last?

A: Lifespan varies by material. Well-maintained wooden ramps might last 10-15 years. Aluminum ramps can last 20-30 years or more with minimal maintenance. Steel ramps also offer good longevity if properly treated against rust. Concrete ramps are the most permanent, potentially lasting decades.

Q5: Do I need a permit for a wheelchair ramp?

A: It depends on your local municipality and the scope of the project. Many jurisdictions require permits for structural modifications, especially for permanent ramps or those involving significant site work. It's best to check with your local building department before starting.

Related Tools and Internal Resources

© 2023 Your Company Name. All rights reserved.

var rampLengthInput = document.getElementById('rampLength'); var rampWidthInput = document.getElementById('rampWidth'); var materialTypeInput = document.getElementById('materialType'); var slopeRatioInput = document.getElementById('slopeRatio'); var installationComplexityInput = document.getElementById('installationComplexity'); var additionalFeaturesInput = document.getElementById('additionalFeatures'); var rampLengthError = document.getElementById('rampLengthError'); var rampWidthError = document.getElementById('rampWidthError'); var materialTypeError = document.getElementById('materialTypeError'); var slopeRatioError = document.getElementById('slopeRatioError'); var installationComplexityError = document.getElementById('installationComplexityError'); var additionalFeaturesError = document.getElementById('additionalFeaturesError'); var materialCostResultSpan = document.getElementById('materialCostResult'); var laborCostResultSpan = document.getElementById('laborCostResult'); var additionalFeaturesResultSpan = document.getElementById('additionalFeaturesResult'); var totalCostResultSpan = document.getElementById('totalCostResult'); var primaryResultDiv = document.querySelector('.primary-result'); var costBreakdownChart = null; var chartContext = null; var materialCosts = { wood: 75, aluminum: 180, steel: 250, concrete: 175 }; var laborMultipliers = { simple: 1.5, moderate: 2.5, complex: 4.0 }; function validateInput(inputElement, errorElement, minValue, maxValue, isRequired = true) { var value = inputElement.value.trim(); var error = ""; if (isRequired && value === "") { error = "This field is required."; } else if (value !== "") { var numValue = parseFloat(value); if (isNaN(numValue)) { error = "Please enter a valid number."; } else if (numValue < 0) { error = "Cannot be negative."; } else if (minValue !== null && numValue maxValue) { error = "Value too high."; } } if (errorElement) { errorElement.textContent = error; } return error === ""; } function validateSlopeRatio(inputElement, errorElement) { var value = inputElement.value.trim(); var error = ""; var slopeRegex = /^\s*1\s*:\s*\d+(\.\d+)?\s*$/; if (value === "") { error = "Slope ratio is required."; } else if (!slopeRegex.test(value)) { error = "Invalid format. Use 1:X (e.g., 1:12)."; } if (errorElement) { errorElement.textContent = error; } return error === ""; } function getSlopeDenominator(slopeString) { var parts = slopeString.split(':'); if (parts.length === 2) { var denominator = parseFloat(parts[1].trim()); if (!isNaN(denominator) && denominator > 0) { return denominator; } } return 12; // Default to 1:12 if parsing fails } function calculateRampCost() { var isValid = true; isValid &= validateInput(rampLengthInput, rampLengthError, 1); isValid &= validateInput(rampWidthInput, rampWidthError, 24); isValid &= validateSlopeRatio(slopeRatioInput, slopeRatioError); isValid &= validateInput(additionalFeaturesInput, additionalFeaturesError, 0); var selectedMaterial = materialTypeInput.value; var selectedComplexity = installationComplexityInput.value; if (!isValid) { updateResults(0, 0, 0, 0); return; } var rampLength = parseFloat(rampLengthInput.value); var rampWidth = parseFloat(rampWidthInput.value); var slopeDenominator = getSlopeDenominator(slopeRatioInput.value); var additionalFeaturesCost = parseFloat(additionalFeaturesInput.value); var materialCostPerFoot = materialCosts[selectedMaterial] || 100; // Default if material not found var laborMultiplier = laborMultipliers[selectedComplexity] || 1.5; // Default if complexity not found var materialCost = rampLength * materialCostPerFoot; var laborCost = materialCost * laborMultiplier; // Simplified labor estimation // Adjust labor for width if significantly different from standard 36″ if (rampWidth !== 36) { laborCost *= (rampWidth / 36); } var totalCost = materialCost + laborCost + additionalFeaturesCost; updateResults(materialCost, laborCost, additionalFeaturesCost, totalCost); updateChart([materialCost, laborCost, additionalFeaturesCost]); } function updateResults(materialCost, laborCost, additionalFeaturesCost, totalCost) { materialCostResultSpan.textContent = "$" + materialCost.toFixed(2); laborCostResultSpan.textContent = "$" + laborCost.toFixed(2); additionalFeaturesResultSpan.textContent = "$" + additionalFeaturesCost.toFixed(2); totalCostResultSpan.textContent = "$" + totalCost.toFixed(2); primaryResultDiv.textContent = "$" + totalCost.toFixed(2); } function resetRampForm() { document.getElementById('rampForm').reset(); // Clear error messages rampLengthError.textContent = ""; rampWidthError.textContent = ""; materialTypeError.textContent = ""; slopeRatioError.textContent = ""; installationComplexityError.textContent = ""; additionalFeaturesError.textContent = ""; // Reset to default values and recalculate rampLengthInput.value = 10; rampWidthInput.value = 36; materialTypeInput.value = 'wood'; slopeRatioInput.value = '1:12'; installationComplexityInput.value = 'simple'; additionalFeaturesInput.value = 0; calculateRampCost(); } function copyResults() { var materialCost = materialCostResultSpan.textContent; var laborCost = laborCostResultSpan.textContent; var additionalFeaturesCost = additionalFeaturesResultSpan.textContent; var totalCost = totalCostResultSpan.textContent; var rampLength = rampLengthInput.value; var rampWidth = rampWidthInput.value; var materialType = materialTypeInput.options[materialTypeInput.selectedIndex].text; var slopeRatio = slopeRatioInput.value; var complexity = installationComplexityInput.options[installationComplexityInput.selectedIndex].text; var additionalFeatures = additionalFeaturesInput.value; var textToCopy = "Wheelchair Ramp Cost Estimate:\n\n"; textToCopy += "Ramp Length: " + rampLength + " ft\n"; textToCopy += "Ramp Width: " + rampWidth + " inches\n"; textToCopy += "Material: " + materialType + "\n"; textToCopy += "Slope: " + slopeRatio + "\n"; textToCopy += "Complexity: " + complexity + "\n"; textToCopy += "Additional Features Cost: $" + additionalFeatures + "\n\n"; textToCopy += "— Breakdown —\n"; textToCopy += "Material Cost: " + materialCost + "\n"; textToCopy += "Labor Cost: " + laborCost + "\n"; textToCopy += "Additional Features Cost: " + additionalFeaturesCost + "\n"; textToCopy += "Total Estimated Cost: " + totalCost + "\n"; navigator.clipboard.writeText(textToCopy).then(function() { // Optional: Show a confirmation message var copyButton = document.querySelector('button[onclick="copyResults()"]'); var originalText = copyButton.textContent; copyButton.textContent = 'Copied!'; setTimeout(function() { copyButton.textContent = originalText; }, 2000); }).catch(function(err) { console.error('Failed to copy text: ', err); // Optional: Show an error message }); } function updateChart(data) { if (!chartContext) { var canvas = document.getElementById('costBreakdownChart'); chartContext = canvas.getContext('2d'); } if (costBreakdownChart) { costBreakdownChart.destroy(); // Destroy previous chart instance } var labels = ['Material Cost', 'Labor Cost', 'Additional Features']; var colors = ['#004a99', '#6c757d', '#28a745']; // Primary, Secondary, Success costBreakdownChart = new Chart(chartContext, { type: 'pie', data: { labels: labels, datasets: [{ label: 'Cost Component', data: data, backgroundColor: colors, hoverOffset: 4 }] }, options: { responsive: true, maintainAspectRatio: false, plugins: { legend: { position: 'top', }, title: { display: true, text: 'Cost Distribution' } } } }); } // Initial calculation on page load window.onload = function() { calculateRampCost(); // Add event listeners for real-time updates rampLengthInput.addEventListener('input', calculateRampCost); rampWidthInput.addEventListener('input', calculateRampCost); materialTypeInput.addEventListener('change', calculateRampCost); slopeRatioInput.addEventListener('input', calculateRampCost); installationComplexityInput.addEventListener('change', calculateRampCost); additionalFeaturesInput.addEventListener('input', calculateRampCost); // Initialize chart with zero values before first calculation updateChart([0, 0, 0]); }; // Basic Chart.js implementation (if not available globally) // In a real-world scenario, you'd include Chart.js library // For this self-contained example, we'll assume a minimal Chart object exists or define it. // NOTE: This is a placeholder. A real implementation requires the Chart.js library. // For this exercise, we'll assume Chart is globally available. If not, you'd need to add: // // or embed a minimal version. // Minimal Chart definition for self-contained example if Chart.js is not loaded externally if (typeof Chart === 'undefined') { window.Chart = function(ctx, config) { console.warn("Chart.js library not found. Chart will not render."); // Mock object to prevent errors this.destroy = function() {}; return { ctx: ctx, config: config, destroy: function() { console.log('Mock destroy called'); } }; }; window.Chart.defaults = { pie: {}, datasets: { pie: { backgroundColor: [], data: [] } } }; window.Chart.prototype = { destroy: function() { console.log('Mock prototype destroy called'); } }; }

Leave a Comment