{"id":24581,"date":"2026-08-10T05:19:43","date_gmt":"2026-08-10T05:19:43","guid":{"rendered":"https:\/\/www.mechstream.com\/?p=24581"},"modified":"2026-08-10T05:27:08","modified_gmt":"2026-08-10T05:27:08","slug":"gearbox-efficiency-power-loss-calculator","status":"publish","type":"post","link":"https:\/\/www.mechstream.com\/ar\/gearbox-efficiency-power-loss-calculator\/","title":{"rendered":"Gearbox Efficiency &amp; Power Loss Calculator"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The <strong>Gearbox Efficiency &amp; Power Loss Calculator<\/strong> is an advanced engineering tool designed to evaluate gearbox performance by calculating transmission efficiency and power losses during operation. By entering key parameters such as input power, output power, torque, speed, and efficiency values, users can quickly determine energy loss and overall gearbox performance. The <strong>Gearbox Efficiency &amp; Power Loss Calculator<\/strong> helps engineers analyze mechanical transmission systems, optimize gearbox designs, select suitable components, and improve energy utilization. It is widely used in industrial machinery, automotive systems, robotics, and power transmission applications. This calculator provides accurate and convenient calculations, helping designers reduce energy waste, improve system reliability, and achieve more efficient gearbox solutions.<\/p>\n\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Gearbox Efficiency &#038; Power Loss Calculator<\/title>\n<style>\n\/* Scoped styles \u2014 safe for WordPress embed; does not affect page outside #gec-calculator *\/\n#gec-calculator {\n  --gec-bg: #ffffff;\n  --gec-bg-card: #ffffff;\n  --gec-bg-input: #f5f7fa;\n  --gec-border: #dde3ea;\n  --gec-text: #1a2332;\n  --gec-text-muted: #5a6b7d;\n  --gec-accent: #0077b6;\n  --gec-accent-glow: rgba(0,119,182,0.12);\n  --gec-success: #059669;\n  --gec-warning: #d97706;\n  --gec-danger: #dc2626;\n  --gec-shadow: 0 2px 12px rgba(0,0,0,0.06);\n  --gec-radius: 12px;\n  --gec-font: 'Segoe UI', system-ui, -apple-system, sans-serif;\n  --gec-font-mono: 'Cascadia Code', 'Consolas', monospace;\n  display: block;\n  max-width: 1000px;\n  margin: 0 auto;\n  padding: 1.5rem;\n  font-family: var(--gec-font);\n  font-size: 16px;\n  line-height: 1.5;\n  color: var(--gec-text);\n  background: var(--gec-bg);\n  box-sizing: border-box;\n}\n#gec-calculator *,\n#gec-calculator *::before,\n#gec-calculator *::after {\n  box-sizing: border-box;\n}\n#gec-calculator .gec-grid-main {\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: 1.25rem;\n}\n#gec-calculator .gec-card {\n  background: var(--gec-bg-card);\n  border: 1px solid var(--gec-border);\n  border-radius: var(--gec-radius);\n  padding: 1.25rem;\n  box-shadow: var(--gec-shadow);\n}\n#gec-calculator .gec-card-title {\n  font-size: 0.75rem;\n  font-weight: 600;\n  text-transform: uppercase;\n  letter-spacing: 0.08em;\n  color: var(--gec-accent);\n  margin: 0 0 1rem;\n  display: flex;\n  align-items: center;\n  gap: 0.5rem;\n}\n#gec-calculator .gec-card-title::before {\n  content: '';\n  width: 3px;\n  height: 14px;\n  background: var(--gec-accent);\n  border-radius: 2px;\n}\n#gec-calculator .gec-input-grid {\n  display: grid;\n  grid-template-columns: repeat(2, 1fr);\n  gap: 1rem;\n}\n#gec-calculator .gec-form-group {\n  margin: 0;\n}\n#gec-calculator .gec-form-group label {\n  display: block;\n  font-size: 0.82rem;\n  font-weight: 500;\n  color: var(--gec-text-muted);\n  margin: 0 0 0.35rem;\n}\n#gec-calculator .gec-input-row {\n  display: flex;\n  gap: 0.5rem;\n  align-items: stretch;\n}\n#gec-calculator .gec-input-row input[type=\"number\"],\n#gec-calculator .gec-form-group input[type=\"number\"],\n#gec-calculator .gec-form-group select,\n#gec-calculator .gec-input-row select {\n  flex: 1;\n  width: 100%;\n  padding: 0.6rem 0.75rem;\n  margin: 0;\n  background: var(--gec-bg-input);\n  border: 1px solid var(--gec-border);\n  border-radius: 8px;\n  color: var(--gec-text);\n  font-size: 0.95rem;\n  font-family: var(--gec-font-mono);\n  line-height: normal;\n  height: auto;\n  transition: border-color 0.2s, box-shadow 0.2s;\n  min-width: 0;\n  box-shadow: none;\n  appearance: auto;\n}\n#gec-calculator input[type=\"number\"]:focus,\n#gec-calculator select:focus {\n  outline: none;\n  border-color: var(--gec-accent);\n  box-shadow: 0 0 0 3px var(--gec-accent-glow);\n}\n#gec-calculator input.gec-invalid {\n  border-color: var(--gec-danger);\n  box-shadow: 0 0 0 3px rgba(220,38,38,0.15);\n}\n#gec-calculator .gec-toggle-group {\n  display: flex;\n  border: 1px solid var(--gec-border);\n  border-radius: 8px;\n  overflow: hidden;\n  flex-shrink: 0;\n}\n#gec-calculator .gec-toggle-btn {\n  padding: 0.6rem 0.75rem;\n  margin: 0;\n  background: var(--gec-bg-input);\n  border: none;\n  color: var(--gec-text-muted);\n  font-size: 0.78rem;\n  font-weight: 600;\n  font-family: var(--gec-font);\n  line-height: normal;\n  cursor: pointer;\n  transition: all 0.2s;\n  white-space: nowrap;\n  box-shadow: none;\n  appearance: none;\n}\n#gec-calculator .gec-toggle-btn.gec-active {\n  background: var(--gec-accent);\n  color: #fff;\n}\n#gec-calculator .gec-toggle-btn:not(.gec-active):hover {\n  color: var(--gec-text);\n}\n#gec-calculator .gec-results-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));\n  gap: 1rem;\n  margin-bottom: 1.25rem;\n}\n#gec-calculator .gec-metric {\n  background: var(--gec-bg-input);\n  border-radius: 10px;\n  padding: 1rem;\n  text-align: center;\n  border: 1px solid transparent;\n}\n#gec-calculator .gec-metric.gec-highlight {\n  border-color: var(--gec-accent);\n  background: var(--gec-accent-glow);\n}\n#gec-calculator .gec-metric-label {\n  font-size: 0.72rem;\n  color: var(--gec-text-muted);\n  text-transform: uppercase;\n  letter-spacing: 0.05em;\n  margin-bottom: 0.25rem;\n}\n#gec-calculator .gec-metric-value {\n  font-size: 1.35rem;\n  font-weight: 700;\n  font-family: var(--gec-font-mono);\n  color: var(--gec-text);\n}\n#gec-calculator .gec-metric-unit {\n  font-size: 0.75rem;\n  color: var(--gec-text-muted);\n  margin-top: 0.1rem;\n}\n#gec-calculator .gec-efficiency-section {\n  display: grid;\n  grid-template-columns: 1fr 1.5fr;\n  gap: 1.5rem;\n  align-items: center;\n}\n#gec-calculator .gec-gauge-wrap {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  gap: 0.75rem;\n}\n#gec-calculator .gec-gauge {\n  position: relative;\n  width: 180px;\n  height: 100px;\n  overflow: hidden;\n}\n#gec-calculator .gec-gauge-bg,\n#gec-calculator .gec-gauge-fill {\n  position: absolute;\n  width: 180px;\n  height: 180px;\n  border-radius: 50%;\n  border: 16px solid var(--gec-bg-input);\n  top: 0;\n  left: 0;\n  clip-path: polygon(0 50%, 100% 50%, 100% 100%, 0 100%);\n}\n#gec-calculator .gec-gauge-fill {\n  border-color: transparent;\n  border-top-color: var(--gec-success);\n  transform: rotate(calc(var(--gec-pct, 0) * 1.8deg - 180deg));\n  transition: transform 0.6s cubic-bezier(0.34,1.56,0.64,1), border-top-color 0.3s;\n}\n#gec-calculator .gec-gauge-center {\n  position: absolute;\n  bottom: 0;\n  left: 50%;\n  transform: translateX(-50%);\n  text-align: center;\n}\n#gec-calculator .gec-gauge-value {\n  font-size: 2rem;\n  font-weight: 800;\n  font-family: var(--gec-font-mono);\n  line-height: 1;\n  color: var(--gec-text);\n}\n#gec-calculator .gec-gauge-label {\n  font-size: 0.7rem;\n  color: var(--gec-text-muted);\n}\n#gec-calculator .gec-status-badge {\n  display: inline-block;\n  padding: 0.4rem 1rem;\n  border-radius: 20px;\n  font-size: 0.78rem;\n  font-weight: 700;\n  text-transform: uppercase;\n  letter-spacing: 0.06em;\n}\n#gec-calculator .gec-status-optimal {\n  background: rgba(5,150,105,0.12);\n  color: var(--gec-success);\n  border: 1px solid var(--gec-success);\n}\n#gec-calculator .gec-status-acceptable {\n  background: rgba(217,119,6,0.12);\n  color: var(--gec-warning);\n  border: 1px solid var(--gec-warning);\n}\n#gec-calculator .gec-status-highloss {\n  background: rgba(220,38,38,0.12);\n  color: var(--gec-danger);\n  border: 1px solid var(--gec-danger);\n}\n#gec-calculator .gec-warnings {\n  display: flex;\n  flex-direction: column;\n  gap: 0.5rem;\n  margin-top: 1rem;\n}\n#gec-calculator .gec-warning-banner {\n  display: flex;\n  align-items: flex-start;\n  gap: 0.6rem;\n  padding: 0.75rem 1rem;\n  border-radius: 8px;\n  font-size: 0.82rem;\n  line-height: 1.45;\n  margin: 0;\n}\n#gec-calculator .gec-warning-banner svg {\n  flex-shrink: 0;\n  width: 18px;\n  height: 18px;\n  margin-top: 1px;\n}\n#gec-calculator .gec-warning-thermal {\n  background: rgba(220,38,38,0.08);\n  border: 1px solid rgba(220,38,38,0.3);\n  color: var(--gec-danger);\n}\n#gec-calculator .gec-warning-efficiency {\n  background: rgba(217,119,6,0.08);\n  border: 1px solid rgba(217,119,6,0.3);\n  color: var(--gec-warning);\n}\n#gec-calculator .gec-warning-info {\n  background: rgba(0,119,182,0.08);\n  border: 1px solid rgba(0,119,182,0.3);\n  color: var(--gec-accent);\n}\n#gec-calculator .gec-formula-note {\n  margin-top: 1.25rem;\n  padding-top: 1rem;\n  border-top: 1px solid var(--gec-border);\n  font-size: 0.72rem;\n  color: var(--gec-text-muted);\n  line-height: 1.6;\n}\n#gec-calculator .gec-formula-note code {\n  font-family: var(--gec-font-mono);\n  background: var(--gec-bg-input);\n  padding: 0.1rem 0.35rem;\n  border-radius: 4px;\n  font-size: 0.7rem;\n}\n#gec-calculator .gec-calc-actions {\n  display: flex;\n  justify-content: center;\n  margin-top: 1.25rem;\n}\n#gec-calculator .gec-btn-calculate {\n  padding: 0.9rem 3.5rem;\n  margin: 0;\n  background: var(--gec-accent);\n  color: #fff;\n  border: none;\n  border-radius: 10px;\n  font-size: 1.05rem;\n  font-weight: 600;\n  font-family: var(--gec-font);\n  line-height: normal;\n  cursor: pointer;\n  transition: background 0.2s, box-shadow 0.2s, transform 0.15s;\n  box-shadow: 0 2px 8px rgba(0,119,182,0.25);\n  min-width: 200px;\n  appearance: none;\n}\n#gec-calculator .gec-btn-calculate:hover {\n  background: #005f91;\n  box-shadow: 0 4px 12px rgba(0,119,182,0.35);\n  color: #fff;\n}\n#gec-calculator .gec-btn-calculate:active {\n  transform: scale(0.98);\n}\n#gec-calculator .gec-results-panel {\n  display: none !important;\n}\n#gec-calculator .gec-results-panel.gec-visible {\n  display: block !important;\n}\n@media (max-width: 640px) {\n  #gec-calculator .gec-input-grid {\n    grid-template-columns: 1fr;\n  }\n}\n@media (max-width: 720px) {\n  #gec-calculator .gec-efficiency-section {\n    grid-template-columns: 1fr;\n  }\n}\n<\/style>\n<\/head>\n<body>\n<div id=\"gec-calculator\">\n  <div class=\"gec-grid-main\">\n    <div class=\"gec-card\">\n      <div class=\"gec-card-title\">Input Parameters<\/div>\n      <div class=\"gec-input-grid\">\n        <div class=\"gec-form-group\">\n          <label for=\"gec-inputPower\">Input Power (P<sub>in<\/sub>)<\/label>\n          <div class=\"gec-input-row\">\n            <input type=\"number\" id=\"gec-inputPower\" value=\"75\" min=\"0\" step=\"any\">\n            <div class=\"gec-toggle-group\" id=\"gec-powerUnitToggle\">\n              <button type=\"button\" class=\"gec-toggle-btn gec-active\" data-unit=\"kW\">kW<\/button>\n              <button type=\"button\" class=\"gec-toggle-btn\" data-unit=\"HP\">HP<\/button>\n            <\/div>\n          <\/div>\n        <\/div>\n        <div class=\"gec-form-group\">\n          <label for=\"gec-inputSpeed\">Input Speed (N<sub>in<\/sub>) \u2014 RPM<\/label>\n          <input type=\"number\" id=\"gec-inputSpeed\" value=\"1480\" min=\"0\" step=\"any\">\n        <\/div>\n        <div class=\"gec-form-group\">\n          <label for=\"gec-gearType\">Gear Type<\/label>\n          <select id=\"gec-gearType\">\n            <option value=\"spur\">Spur \/ Helical<\/option>\n            <option value=\"bevel\">Bevel<\/option>\n            <option value=\"worm\">Worm Gear<\/option>\n          <\/select>\n        <\/div>\n        <div class=\"gec-form-group\">\n          <label for=\"gec-stages\">Number of Reduction Stages<\/label>\n          <select id=\"gec-stages\">\n            <option value=\"1\">1 Stage<\/option>\n            <option value=\"2\">2 Stages<\/option>\n            <option value=\"3\">3 Stages<\/option>\n          <\/select>\n        <\/div>\n        <div class=\"gec-form-group\">\n          <label for=\"gec-gearRatio\">Overall Gear Ratio (i)<\/label>\n          <input type=\"number\" id=\"gec-gearRatio\" value=\"20\" min=\"1\" step=\"any\">\n        <\/div>\n        <div class=\"gec-form-group\">\n          <label for=\"gec-lubrication\">Lubrication Method<\/label>\n          <select id=\"gec-lubrication\">\n            <option value=\"splash\">Splash Lubrication<\/option>\n            <option value=\"force\">Force-Fed \/ Jet<\/option>\n          <\/select>\n        <\/div>\n        <div class=\"gec-form-group\">\n          <label for=\"gec-viscosity\">Oil Viscosity Grade (ISO VG)<\/label>\n          <select id=\"gec-viscosity\">\n            <option value=\"68\">ISO VG 68<\/option>\n            <option value=\"100\">ISO VG 100<\/option>\n            <option value=\"150\" selected>ISO VG 150<\/option>\n            <option value=\"220\">ISO VG 220<\/option>\n            <option value=\"320\">ISO VG 320<\/option>\n            <option value=\"460\">ISO VG 460<\/option>\n          <\/select>\n        <\/div>\n        <div class=\"gec-form-group\">\n          <label for=\"gec-temperature\">Operating Temperature<\/label>\n          <div class=\"gec-input-row\">\n            <input type=\"number\" id=\"gec-temperature\" value=\"65\" step=\"any\">\n            <div class=\"gec-toggle-group\" id=\"gec-tempUnitToggle\">\n              <button type=\"button\" class=\"gec-toggle-btn gec-active\" data-unit=\"C\">&deg;C<\/button>\n              <button type=\"button\" class=\"gec-toggle-btn\" data-unit=\"F\">&deg;F<\/button>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n      <div class=\"gec-calc-actions\">\n        <button type=\"button\" class=\"gec-btn-calculate\" id=\"gec-calcBtn\">Calculate<\/button>\n      <\/div>\n    <\/div>\n\n    <div class=\"gec-card gec-results-panel\" id=\"gec-resultsPanel\">\n      <div class=\"gec-card-title\">Results &amp; Efficiency Analysis<\/div>\n      <div class=\"gec-efficiency-section\">\n        <div class=\"gec-gauge-wrap\">\n          <div class=\"gec-gauge\">\n            <div class=\"gec-gauge-bg\"><\/div>\n            <div class=\"gec-gauge-fill\" id=\"gec-gaugeFill\"><\/div>\n            <div class=\"gec-gauge-center\">\n              <div class=\"gec-gauge-value\" id=\"gec-gaugeValue\">\u2014<\/div>\n              <div class=\"gec-gauge-label\">Efficiency &eta;<\/div>\n            <\/div>\n          <\/div>\n          <span class=\"gec-status-badge gec-status-optimal\" id=\"gec-statusBadge\">Optimal<\/span>\n        <\/div>\n        <div class=\"gec-results-grid\">\n          <div class=\"gec-metric gec-highlight\">\n            <div class=\"gec-metric-label\">Total Power Loss<\/div>\n            <div class=\"gec-metric-value\" id=\"gec-outPloss\">\u2014<\/div>\n            <div class=\"gec-metric-unit\">kW<\/div>\n          <\/div>\n          <div class=\"gec-metric\">\n            <div class=\"gec-metric-label\">Gear Mesh Loss<\/div>\n            <div class=\"gec-metric-value\" id=\"gec-outPm\">\u2014<\/div>\n            <div class=\"gec-metric-unit\">kW<\/div>\n          <\/div>\n          <div class=\"gec-metric\">\n            <div class=\"gec-metric-label\">Bearing &amp; Seal Loss<\/div>\n            <div class=\"gec-metric-value\" id=\"gec-outPb\">\u2014<\/div>\n            <div class=\"gec-metric-unit\">kW<\/div>\n          <\/div>\n          <div class=\"gec-metric\">\n            <div class=\"gec-metric-label\">Churning \/ Windage<\/div>\n            <div class=\"gec-metric-value\" id=\"gec-outPw\">\u2014<\/div>\n            <div class=\"gec-metric-unit\">kW<\/div>\n          <\/div>\n          <div class=\"gec-metric\">\n            <div class=\"gec-metric-label\">Net Output Power<\/div>\n            <div class=\"gec-metric-value\" id=\"gec-outPout\">\u2014<\/div>\n            <div class=\"gec-metric-unit\">kW<\/div>\n          <\/div>\n          <div class=\"gec-metric\">\n            <div class=\"gec-metric-label\">Net Output Torque<\/div>\n            <div class=\"gec-metric-value\" id=\"gec-outTout\">\u2014<\/div>\n            <div class=\"gec-metric-unit\">N&middot;m<\/div>\n          <\/div>\n          <div class=\"gec-metric\">\n            <div class=\"gec-metric-label\">Heat Dissipation<\/div>\n            <div class=\"gec-metric-value\" id=\"gec-outHeatW\">\u2014<\/div>\n            <div class=\"gec-metric-unit\">W \/ <span id=\"gec-outHeatBTU\">\u2014<\/span> BTU\/h<\/div>\n          <\/div>\n          <div class=\"gec-metric\">\n            <div class=\"gec-metric-label\">Output Speed<\/div>\n            <div class=\"gec-metric-value\" id=\"gec-outNout\">\u2014<\/div>\n            <div class=\"gec-metric-unit\">RPM<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n      <div class=\"gec-warnings\" id=\"gec-warnings\"><\/div>\n      <div class=\"gec-formula-note\">\n        Models: Mesh loss per ISO\/TR 14179 &amp; AGMA 925 \u2014 stage efficiency from gear type &amp; ratio.\n        Bearing loss: f = 0.003 + 0.000012&middot;(N\/1000)&middot;&radic;(P<sub>in<\/sub>).\n        Churning: P<sub>w<\/sub> &prop; &mu;<sub>eff<\/sub>&middot;(N\/1000)<sup>1.6<\/sup>&middot;f<sub>lub<\/sub>.\n        <code>&eta; = (P<sub>in<\/sub> &minus; P<sub>loss<\/sub>) \/ P<sub>in<\/sub> &times; 100%<\/code>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">(function(){var b=\"CihmdW5jdGlvbiAoKSB7CiAgJ3VzZSBzdHJpY3QnOwoKICBmdW5jdGlvbiBpbml0R2VjQ2FsY3VsYXRvcigpIHsKICAgIHZhciByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dlYy1jYWxjdWxhdG9yJyk7CiAgICBpZiAoIXJvb3QgfHwgcm9vdC5nZXRBdHRyaWJ1dGUoJ2RhdGEtZ2VjLWluaXQnKSA9PT0gJzEnKSByZXR1cm47CiAgICByb290LnNldEF0dHJpYnV0ZSgnZGF0YS1nZWMtaW5pdCcsICcxJyk7CgogICAgdmFyIEhQX1RPX0tXID0gMC43NDU3OwogICAgdmFyIEtXX1RPX1cgPSAxMDAwOwogICAgdmFyIFdfVE9fQlRVX0ggPSAzLjQxMjE0OwogICAgdmFyIFJQTV9UT19SQURfUyA9IDIgKiBNYXRoLlBJIC8gNjA7CgogICAgdmFyIHN0YXRlID0gewogICAgICBwb3dlclVuaXQ6ICdrVycsCiAgICAgIHRlbXBVbml0OiAnQycKICAgIH07CgogICAgZnVuY3Rpb24gJChpZCkgewogICAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwogICAgfQoKICAgIHZhciBlbHMgPSB7CiAgICAgIGlucHV0UG93ZXI6ICQoJ2dlYy1pbnB1dFBvd2VyJyksCiAgICAgIGlucHV0U3BlZWQ6ICQoJ2dlYy1pbnB1dFNwZWVkJyksCiAgICAgIGdlYXJUeXBlOiAkKCdnZWMtZ2VhclR5cGUnKSwKICAgICAgc3RhZ2VzOiAkKCdnZWMtc3RhZ2VzJyksCiAgICAgIGdlYXJSYXRpbzogJCgnZ2VjLWdlYXJSYXRpbycpLAogICAgICBsdWJyaWNhdGlvbjogJCgnZ2VjLWx1YnJpY2F0aW9uJyksCiAgICAgIHZpc2Nvc2l0eTogJCgnZ2VjLXZpc2Nvc2l0eScpLAogICAgICB0ZW1wZXJhdHVyZTogJCgnZ2VjLXRlbXBlcmF0dXJlJyksCiAgICAgIHBvd2VyVW5pdFRvZ2dsZTogJCgnZ2VjLXBvd2VyVW5pdFRvZ2dsZScpLAogICAgICB0ZW1wVW5pdFRvZ2dsZTogJCgnZ2VjLXRlbXBVbml0VG9nZ2xlJyksCiAgICAgIGdhdWdlRmlsbDogJCgnZ2VjLWdhdWdlRmlsbCcpLAogICAgICBnYXVnZVZhbHVlOiAkKCdnZWMtZ2F1Z2VWYWx1ZScpLAogICAgICBzdGF0dXNCYWRnZTogJCgnZ2VjLXN0YXR1c0JhZGdlJyksCiAgICAgIG91dFBsb3NzOiAkKCdnZWMtb3V0UGxvc3MnKSwKICAgICAgb3V0UG06ICQoJ2dlYy1vdXRQbScpLAogICAgICBvdXRQYjogJCgnZ2VjLW91dFBiJyksCiAgICAgIG91dFB3OiAkKCdnZWMtb3V0UHcnKSwKICAgICAgb3V0UG91dDogJCgnZ2VjLW91dFBvdXQnKSwKICAgICAgb3V0VG91dDogJCgnZ2VjLW91dFRvdXQnKSwKICAgICAgb3V0SGVhdFc6ICQoJ2dlYy1vdXRIZWF0VycpLAogICAgICBvdXRIZWF0QlRVOiAkKCdnZWMtb3V0SGVhdEJUVScpLAogICAgICBvdXROb3V0OiAkKCdnZWMtb3V0Tm91dCcpLAogICAgICB3YXJuaW5nczogJCgnZ2VjLXdhcm5pbmdzJyksCiAgICAgIHJlc3VsdHNQYW5lbDogJCgnZ2VjLXJlc3VsdHNQYW5lbCcpLAogICAgICBjYWxjQnRuOiAkKCdnZWMtY2FsY0J0bicpCiAgICB9OwoKICAgIGlmICghZWxzLmNhbGNCdG4gfHwgIWVscy5yZXN1bHRzUGFuZWwpIHJldHVybjsKCiAgICBmdW5jdGlvbiBmbXQobiwgZCkgewogICAgICBpZiAoIWlzRmluaXRlKG4pKSByZXR1cm4gJy0nOwogICAgICBpZiAoTWF0aC5hYnMobikgPj0gMTAwMCkgcmV0dXJuIG4udG9GaXhlZCgwKTsKICAgICAgaWYgKE1hdGguYWJzKG4pID49IDEwMCkgcmV0dXJuIG4udG9GaXhlZCgxKTsKICAgICAgaWYgKE1hdGguYWJzKG4pID49IDEwKSByZXR1cm4gbi50b0ZpeGVkKDIpOwogICAgICByZXR1cm4gbi50b0ZpeGVkKGQgIT09IHVuZGVmaW5lZCA\/IGQgOiAzKTsKICAgIH0KCiAgICBmdW5jdGlvbiBnZXRQaW5LdygpIHsKICAgICAgdmFyIHAgPSBwYXJzZUZsb2F0KGVscy5pbnB1dFBvd2VyICYmIGVscy5pbnB1dFBvd2VyLnZhbHVlKSB8fCAwOwogICAgICBpZiAoc3RhdGUucG93ZXJVbml0ID09PSAnSFAnKSBwICo9IEhQX1RPX0tXOwogICAgICByZXR1cm4gcDsKICAgIH0KCiAgICBmdW5jdGlvbiBnZXRUZW1wQygpIHsKICAgICAgdmFyIHQgPSBwYXJzZUZsb2F0KGVscy50ZW1wZXJhdHVyZSAmJiBlbHMudGVtcGVyYXR1cmUudmFsdWUpIHx8IDA7CiAgICAgIGlmIChzdGF0ZS50ZW1wVW5pdCA9PT0gJ0YnKSB0ID0gKHQgLSAzMikgKiA1IC8gOTsKICAgICAgcmV0dXJuIHQ7CiAgICB9CgogICAgZnVuY3Rpb24gZWZmZWN0aXZlVmlzY29zaXR5KHZnTm9taW5hbCwgdGVtcEMpIHsKICAgICAgdmFyIHJlZlRlbXAgPSA0MDsKICAgICAgdmFyIGJldGEgPSAwLjAzNTsKICAgICAgdmFyIGZhY3RvciA9IE1hdGguZXhwKC1iZXRhICogKHRlbXBDIC0gcmVmVGVtcCkpOwogICAgICByZXR1cm4gdmdOb21pbmFsICogTWF0aC5tYXgoMC4zNSwgTWF0aC5taW4oMi41LCBmYWN0b3IpKTsKICAgIH0KCiAgICBmdW5jdGlvbiBzdGFnZU1lc2hFZmZpY2llbmN5KGdlYXJUeXBlLCByYXRpb1N0YWdlKSB7CiAgICAgIHZhciByID0gTWF0aC5tYXgoMS4wMSwgcmF0aW9TdGFnZSk7CiAgICAgIHZhciBsb2dSID0gTWF0aC5sb2cxMChyKTsKICAgICAgc3dpdGNoIChnZWFyVHlwZSkgewogICAgICAgIGNhc2UgJ3NwdXInOgogICAgICAgICAgcmV0dXJuIE1hdGgubWF4KDAuOTYsIDAuOTkyIC0gMC4wMDggKiBsb2dSKTsKICAgICAgICBjYXNlICdiZXZlbCc6CiAgICAgICAgICByZXR1cm4gTWF0aC5tYXgoMC45NCwgMC45ODUgLSAwLjAxMiAqIGxvZ1IpOwogICAgICAgIGNhc2UgJ3dvcm0nOgogICAgICAgICAgcmV0dXJuIE1hdGgubWF4KDAuNTUsIDAuOTcgLSAwLjA2ICogbG9nUiAtIDAuMDAyICogcik7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgIHJldHVybiAwLjk3OwogICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gdG90YWxNZXNoRWZmaWNpZW5jeShnZWFyVHlwZSwgc3RhZ2VzLCBvdmVyYWxsUmF0aW8pIHsKICAgICAgdmFyIG4gPSBwYXJzZUludChzdGFnZXMsIDEwKTsKICAgICAgdmFyIGkgPSBNYXRoLm1heCgxLCBvdmVyYWxsUmF0aW8pOwogICAgICBpZiAoZ2VhclR5cGUgPT09ICd3b3JtJyAmJiBuID09PSAxKSB7CiAgICAgICAgcmV0dXJuIHN0YWdlTWVzaEVmZmljaWVuY3koJ3dvcm0nLCBpKTsKICAgICAgfQogICAgICB2YXIgaVN0YWdlID0gTWF0aC5wb3coaSwgMSAvIG4pOwogICAgICB2YXIgZXRhID0gMTsKICAgICAgZm9yICh2YXIgcyA9IDA7IHMgPCBuOyBzKyspIHsKICAgICAgICBldGEgKj0gc3RhZ2VNZXNoRWZmaWNpZW5jeShnZWFyVHlwZSwgaVN0YWdlKTsKICAgICAgfQogICAgICByZXR1cm4gZXRhOwogICAgfQoKICAgIGZ1bmN0aW9uIGNhbGNCZWFyaW5nTG9zcyhQaW5LdywgTiwgc3RhZ2VzKSB7CiAgICAgIHZhciBuID0gcGFyc2VJbnQoc3RhZ2VzLCAxMCk7CiAgICAgIHZhciBzaGFmdEZhY3RvciA9IDEgKyAwLjEyICogKG4gLSAxKTsKICAgICAgdmFyIHNlYWxGYWN0b3IgPSAxICsgMC4wNCAqIG47CiAgICAgIHZhciBmQiA9ICgwLjAwMyArIDAuMDAwMDEyICogKE4gLyAxMDAwKSAqIE1hdGguc3FydChNYXRoLm1heChQaW5LdywgMC4wMSkpKSAqIHNoYWZ0RmFjdG9yICogc2VhbEZhY3RvcjsKICAgICAgcmV0dXJuIFBpbkt3ICogTWF0aC5taW4oMC4wOCwgZkIpOwogICAgfQoKICAgIGZ1bmN0aW9uIGNhbGNDaHVybmluZ0xvc3MoUGluS3csIE4sIHZnLCB0ZW1wQywgbHVicmljYXRpb24sIHN0YWdlcykgewogICAgICB2YXIgbXVFZmYgPSBlZmZlY3RpdmVWaXNjb3NpdHkodmcsIHRlbXBDKTsKICAgICAgdmFyIG11UmVmID0gMTUwOwogICAgICB2YXIgbiA9IHBhcnNlSW50KHN0YWdlcywgMTApOwogICAgICB2YXIgbHViRmFjdG9yID0gbHVicmljYXRpb24gPT09ICdzcGxhc2gnID8gMS4wIDogMC4zODsKICAgICAgdmFyIHN0YWdlRmFjdG9yID0gMSArIDAuMTggKiAobiAtIDEpOwogICAgICB2YXIgc3BlZWRGYWN0b3IgPSBNYXRoLnBvdyhOIC8gMTAwMCwgMS42KTsKICAgICAgdmFyIHZpc2NGYWN0b3IgPSBNYXRoLnBvdyhtdUVmZiAvIG11UmVmLCAwLjc1KTsKICAgICAgdmFyIGZXID0gMC4wMDE4ICogc3BlZWRGYWN0b3IgKiB2aXNjRmFjdG9yICogbHViRmFjdG9yICogc3RhZ2VGYWN0b3I7CiAgICAgIHJldHVybiBQaW5LdyAqIE1hdGgubWluKDAuMjUsIGZXKTsKICAgIH0KCiAgICBmdW5jdGlvbiB2YWxpZGF0ZUlucHV0cyhQaW5LdywgTiwgcmF0aW8sIHRlbXBDKSB7CiAgICAgIHZhciBpc3N1ZXMgPSBbXTsKICAgICAgaWYgKFBpbkt3IDwgMCkgaXNzdWVzLnB1c2goeyB0eXBlOiAnaW52YWxpZCcsIG1zZzogJ0lucHV0IHBvd2VyIG11c3QgYmUgbm9uLW5lZ2F0aXZlLicgfSk7CiAgICAgIGlmIChOIDwgMCkgaXNzdWVzLnB1c2goeyB0eXBlOiAnaW52YWxpZCcsIG1zZzogJ0lucHV0IHNwZWVkIG11c3QgYmUgbm9uLW5lZ2F0aXZlLicgfSk7CiAgICAgIGlmIChyYXRpbyA8IDEpIGlzc3Vlcy5wdXNoKHsgdHlwZTogJ2ludmFsaWQnLCBtc2c6ICdHZWFyIHJhdGlvIG11c3QgYmUgPj0gMS4nIH0pOwogICAgICBpZiAodGVtcEMgPCAtMjAgfHwgdGVtcEMgPiAxNTApIGlzc3Vlcy5wdXNoKHsgdHlwZTogJ2ludmFsaWQnLCBtc2c6ICdPcGVyYXRpbmcgdGVtcGVyYXR1cmUgb3V0c2lkZSByZWFsaXN0aWMgcmFuZ2UgKC0yMCB0byAxNTAgwrBDKS4nIH0pOwogICAgICBpZiAoUGluS3cgPT09IDAgJiYgTiA+IDApIGlzc3Vlcy5wdXNoKHsgdHlwZTogJ2luZm8nLCBtc2c6ICdaZXJvIGlucHV0IHBvd2VyIC0gbG9zc2VzIHdpbGwgYmUgbmVnbGlnaWJsZS4nIH0pOwogICAgICByZXR1cm4gaXNzdWVzOwogICAgfQoKICAgIGZ1bmN0aW9uIHRoZXJtYWxXYXJuaW5ncyhQbG9zc0t3LCB0ZW1wQywgTiwgdmcsIGx1YnJpY2F0aW9uKSB7CiAgICAgIHZhciB3ID0gW107CiAgICAgIHZhciBoZWF0VyA9IFBsb3NzS3cgKiBLV19UT19XOwogICAgICBpZiAoaGVhdFcgPiAxNTAwMCkgewogICAgICAgIHcucHVzaCh7IHR5cGU6ICd0aGVybWFsJywgbXNnOiAnSGlnaCBoZWF0IGdlbmVyYXRpb24gKCcgKyBmbXQoaGVhdFcsIDApICsgJyBXKS4gRW5zdXJlIGFkZXF1YXRlIGNvb2xpbmcsIG9pbCB2b2x1bWUsIGFuZCBob3VzaW5nIHN1cmZhY2UgYXJlYS4nIH0pOwogICAgICB9CiAgICAgIGlmICh0ZW1wQyA+IDkwKSB7CiAgICAgICAgdy5wdXNoKHsgdHlwZTogJ3RoZXJtYWwnLCBtc2c6ICdPcGVyYXRpbmcgdGVtcGVyYXR1cmUgJyArIGZtdCh0ZW1wQywgMSkgKyAnIMKwQyBleGNlZWRzIHR5cGljYWwgbGltaXQgKH45MCDCsEMpLiBSaXNrIG9mIG9pbCBkZWdyYWRhdGlvbiBhbmQgc2VhbCBmYWlsdXJlLicgfSk7CiAgICAgIH0KICAgICAgaWYgKHRlbXBDID4gNzUgJiYgdmcgPj0gMzIwKSB7CiAgICAgICAgdy5wdXNoKHsgdHlwZTogJ3RoZXJtYWwnLCBtc2c6ICdIaWdoIHZpc2Nvc2l0eSBncmFkZSBhdCBlbGV2YXRlZCB0ZW1wZXJhdHVyZSAtIHZlcmlmeSBvaWwgc3VtcCB0ZW1wZXJhdHVyZSBhbmQgb3hpZGF0aW9uIHN0YWJpbGl0eS4nIH0pOwogICAgICB9CiAgICAgIGlmIChsdWJyaWNhdGlvbiA9PT0gJ3NwbGFzaCcgJiYgTiA+IDMwMDAgJiYgdmcgPj0gMjIwKSB7CiAgICAgICAgdy5wdXNoKHsgdHlwZTogJ3RoZXJtYWwnLCBtc2c6ICdIaWdoLXNwZWVkIHNwbGFzaCBsdWJyaWNhdGlvbiB3aXRoIGhlYXZ5IG9pbCAtIGV4Y2Vzc2l2ZSBjaHVybmluZyBhbmQgdGhlcm1hbCBsb2FkIGV4cGVjdGVkLiBDb25zaWRlciBmb3JjZS1mZWQgbHVicmljYXRpb24gb3IgbG93ZXIgVkcgZ3JhZGUuJyB9KTsKICAgICAgfQogICAgICByZXR1cm4gdzsKICAgIH0KCiAgICBmdW5jdGlvbiBlZmZpY2llbmN5V2FybmluZ3MoZXRhLCBnZWFyVHlwZSwgcmF0aW8pIHsKICAgICAgdmFyIHcgPSBbXTsKICAgICAgaWYgKGV0YSA8IDkwKSB7CiAgICAgICAgdy5wdXNoKHsgdHlwZTogJ2VmZmljaWVuY3knLCBtc2c6ICdFZmZpY2llbmN5ICcgKyBmbXQoZXRhLCAxKSArICclIGlzIGJlbG93IDkwJSAtIGludmVzdGlnYXRlIGdlYXIgc2VsZWN0aW9uLCBhbGlnbm1lbnQsIGFuZCBsdWJyaWNhdGlvbi4nIH0pOwogICAgICB9IGVsc2UgaWYgKGV0YSA8IDk1KSB7CiAgICAgICAgdy5wdXNoKHsgdHlwZTogJ2VmZmljaWVuY3knLCBtc2c6ICdFZmZpY2llbmN5ICcgKyBmbXQoZXRhLCAxKSArICclIGlzIGFjY2VwdGFibGUgYnV0IG5vdCBvcHRpbWFsLiBSZXZpZXcgbG9hZCBkaXN0cmlidXRpb24gYW5kIGJlYXJpbmcgcHJlbG9hZC4nIH0pOwogICAgICB9CiAgICAgIGlmIChnZWFyVHlwZSA9PT0gJ3dvcm0nICYmIHJhdGlvID4gNDAgJiYgZXRhIDwgODUpIHsKICAgICAgICB3LnB1c2goeyB0eXBlOiAnZWZmaWNpZW5jeScsIG1zZzogJ0hpZ2gtcmF0aW8gd29ybSBkcml2ZSB3aXRoIHNpZ25pZmljYW50IHNsaWRpbmcgbG9zc2VzIC0gdGhlcm1hbCBtYW5hZ2VtZW50IGlzIGNyaXRpY2FsLicgfSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHc7CiAgICB9CgogICAgZnVuY3Rpb24gdXBkYXRlR2F1Z2UoZXRhKSB7CiAgICAgIHZhciBjbGFtcGVkID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oMTAwLCBldGEpKTsKICAgICAgZWxzLmdhdWdlRmlsbC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1nZWMtcGN0JywgY2xhbXBlZCk7CiAgICAgIGVscy5nYXVnZVZhbHVlLnRleHRDb250ZW50ID0gZm10KGV0YSwgMSkgKyAnJSc7CgogICAgICB2YXIgY29sb3IsIGJhZGdlQ2xhc3MsIGJhZGdlVGV4dDsKICAgICAgaWYgKGV0YSA+PSA5NSkgewogICAgICAgIGNvbG9yID0gJ3ZhcigtLWdlYy1zdWNjZXNzKSc7IGJhZGdlQ2xhc3MgPSAnZ2VjLXN0YXR1cy1vcHRpbWFsJzsgYmFkZ2VUZXh0ID0gJ09wdGltYWwnOwogICAgICB9IGVsc2UgaWYgKGV0YSA+PSA5MCkgewogICAgICAgIGNvbG9yID0gJ3ZhcigtLWdlYy13YXJuaW5nKSc7IGJhZGdlQ2xhc3MgPSAnZ2VjLXN0YXR1cy1hY2NlcHRhYmxlJzsgYmFkZ2VUZXh0ID0gJ0FjY2VwdGFibGUnOwogICAgICB9IGVsc2UgewogICAgICAgIGNvbG9yID0gJ3ZhcigtLWdlYy1kYW5nZXIpJzsgYmFkZ2VDbGFzcyA9ICdnZWMtc3RhdHVzLWhpZ2hsb3NzJzsgYmFkZ2VUZXh0ID0gJ0hpZ2ggTG9zcyc7CiAgICAgIH0KICAgICAgZWxzLmdhdWdlRmlsbC5zdHlsZS5ib3JkZXJUb3BDb2xvciA9IGNvbG9yOwogICAgICBlbHMuc3RhdHVzQmFkZ2UuY2xhc3NOYW1lID0gJ2dlYy1zdGF0dXMtYmFkZ2UgJyArIGJhZGdlQ2xhc3M7CiAgICAgIGVscy5zdGF0dXNCYWRnZS50ZXh0Q29udGVudCA9IGJhZGdlVGV4dDsKICAgIH0KCiAgICBmdW5jdGlvbiByZW5kZXJXYXJuaW5ncyhsaXN0KSB7CiAgICAgIGVscy53YXJuaW5ncy5pbm5lckhUTUwgPSBsaXN0Lm1hcChmdW5jdGlvbiAodykgewogICAgICAgIHZhciBjbHMgPSB3LnR5cGUgPT09ICd0aGVybWFsJyA\/ICdnZWMtd2FybmluZy10aGVybWFsJyA6IHcudHlwZSA9PT0gJ2VmZmljaWVuY3knID8gJ2dlYy13YXJuaW5nLWVmZmljaWVuY3knIDogdy50eXBlID09PSAnaW52YWxpZCcgPyAnZ2VjLXdhcm5pbmctdGhlcm1hbCcgOiAnZ2VjLXdhcm5pbmctaW5mbyc7CiAgICAgICAgcmV0dXJuICc8ZGl2IGNsYXNzPSJnZWMtd2FybmluZy1iYW5uZXIgJyArIGNscyArICciPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0xIDIxaDIyTDEyIDIgMSAyMXptMTItM2gtMnYtMmgydjJ6bTAtNGgtMnYtNGgydjR6Ii8+PC9zdmc+PHNwYW4+JyArIHcubXNnICsgJzwvc3Bhbj48L2Rpdj4nOwogICAgICB9KS5qb2luKCcnKTsKICAgIH0KCiAgICBmdW5jdGlvbiBzZXRJbnB1dFZhbGlkaXR5KCkgewogICAgICB2YXIgUGluS3cgPSBnZXRQaW5LdygpOwogICAgICB2YXIgTiA9IHBhcnNlRmxvYXQoZWxzLmlucHV0U3BlZWQgJiYgZWxzLmlucHV0U3BlZWQudmFsdWUpIHx8IDA7CiAgICAgIHZhciByYXRpbyA9IHBhcnNlRmxvYXQoZWxzLmdlYXJSYXRpbyAmJiBlbHMuZ2VhclJhdGlvLnZhbHVlKSB8fCAwOwogICAgICB2YXIgdGVtcEMgPSBnZXRUZW1wQygpOwogICAgICBpZiAoZWxzLmlucHV0UG93ZXIpIGVscy5pbnB1dFBvd2VyLmNsYXNzTGlzdC50b2dnbGUoJ2dlYy1pbnZhbGlkJywgUGluS3cgPCAwKTsKICAgICAgaWYgKGVscy5pbnB1dFNwZWVkKSBlbHMuaW5wdXRTcGVlZC5jbGFzc0xpc3QudG9nZ2xlKCdnZWMtaW52YWxpZCcsIE4gPCAwKTsKICAgICAgaWYgKGVscy5nZWFyUmF0aW8pIGVscy5nZWFyUmF0aW8uY2xhc3NMaXN0LnRvZ2dsZSgnZ2VjLWludmFsaWQnLCByYXRpbyA8IDEpOwogICAgICBpZiAoZWxzLnRlbXBlcmF0dXJlKSBlbHMudGVtcGVyYXR1cmUuY2xhc3NMaXN0LnRvZ2dsZSgnZ2VjLWludmFsaWQnLCB0ZW1wQyA8IC0yMCB8fCB0ZW1wQyA+IDE1MCk7CiAgICB9CgogICAgZnVuY3Rpb24gc2hvd1Jlc3VsdHNQYW5lbCgpIHsKICAgICAgZWxzLnJlc3VsdHNQYW5lbC5jbGFzc0xpc3QuYWRkKCdnZWMtdmlzaWJsZScpOwogICAgICBlbHMucmVzdWx0c1BhbmVsLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgICBlbHMucmVzdWx0c1BhbmVsLnN0eWxlLnZpc2liaWxpdHkgPSAndmlzaWJsZSc7CiAgICAgIGVscy5yZXN1bHRzUGFuZWwucmVtb3ZlQXR0cmlidXRlKCdoaWRkZW4nKTsKICAgIH0KCiAgICBmdW5jdGlvbiBjYWxjdWxhdGUoZSkgewogICAgICBpZiAoZSAmJiBlLnByZXZlbnREZWZhdWx0KSBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgIHNldElucHV0VmFsaWRpdHkoKTsKICAgICAgc2hvd1Jlc3VsdHNQYW5lbCgpOwoKICAgICAgdmFyIFBpbkt3ID0gZ2V0UGluS3coKTsKICAgICAgdmFyIE4gPSBwYXJzZUZsb2F0KGVscy5pbnB1dFNwZWVkICYmIGVscy5pbnB1dFNwZWVkLnZhbHVlKSB8fCAwOwogICAgICB2YXIgcmF0aW8gPSBwYXJzZUZsb2F0KGVscy5nZWFyUmF0aW8gJiYgZWxzLmdlYXJSYXRpby52YWx1ZSkgfHwgMTsKICAgICAgdmFyIHRlbXBDID0gZ2V0VGVtcEMoKTsKICAgICAgdmFyIHZnID0gcGFyc2VGbG9hdChlbHMudmlzY29zaXR5ICYmIGVscy52aXNjb3NpdHkudmFsdWUpIHx8IDE1MDsKICAgICAgdmFyIGdlYXJUeXBlID0gZWxzLmdlYXJUeXBlID8gZWxzLmdlYXJUeXBlLnZhbHVlIDogJ3NwdXInOwogICAgICB2YXIgc3RhZ2VzID0gZWxzLnN0YWdlcyA\/IGVscy5zdGFnZXMudmFsdWUgOiAnMSc7CiAgICAgIHZhciBsdWJyaWNhdGlvbiA9IGVscy5sdWJyaWNhdGlvbiA\/IGVscy5sdWJyaWNhdGlvbi52YWx1ZSA6ICdzcGxhc2gnOwoKICAgICAgdmFyIHZhbGlkYXRpb25Jc3N1ZXMgPSB2YWxpZGF0ZUlucHV0cyhQaW5LdywgTiwgcmF0aW8sIHRlbXBDKTsKICAgICAgdmFyIGhhc0ludmFsaWQgPSB2YWxpZGF0aW9uSXNzdWVzLnNvbWUoZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHYudHlwZSA9PT0gJ2ludmFsaWQnOyB9KTsKCiAgICAgIGlmIChoYXNJbnZhbGlkIHx8IFBpbkt3IDw9IDApIHsKICAgICAgICBlbHMub3V0UGxvc3MudGV4dENvbnRlbnQgPSAnLSc7CiAgICAgICAgZWxzLm91dFBtLnRleHRDb250ZW50ID0gJy0nOwogICAgICAgIGVscy5vdXRQYi50ZXh0Q29udGVudCA9ICctJzsKICAgICAgICBlbHMub3V0UHcudGV4dENvbnRlbnQgPSAnLSc7CiAgICAgICAgZWxzLm91dFBvdXQudGV4dENvbnRlbnQgPSAnLSc7CiAgICAgICAgZWxzLm91dFRvdXQudGV4dENvbnRlbnQgPSAnLSc7CiAgICAgICAgZWxzLm91dEhlYXRXLnRleHRDb250ZW50ID0gJy0nOwogICAgICAgIGVscy5vdXRIZWF0QlRVLnRleHRDb250ZW50ID0gJy0nOwogICAgICAgIGVscy5vdXROb3V0LnRleHRDb250ZW50ID0gJy0nOwogICAgICAgIGVscy5nYXVnZVZhbHVlLnRleHRDb250ZW50ID0gJy0nOwogICAgICAgIHJlbmRlcldhcm5pbmdzKHZhbGlkYXRpb25Jc3N1ZXMpOwogICAgICAgIGVscy5yZXN1bHRzUGFuZWwuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnbmVhcmVzdCcgfSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICB2YXIgZXRhTWVzaCA9IHRvdGFsTWVzaEVmZmljaWVuY3koZ2VhclR5cGUsIHN0YWdlcywgcmF0aW8pOwogICAgICB2YXIgUG0gPSBQaW5LdyAqICgxIC0gZXRhTWVzaCk7CiAgICAgIHZhciBQYiA9IGNhbGNCZWFyaW5nTG9zcyhQaW5LdywgTiwgc3RhZ2VzKTsKICAgICAgdmFyIFB3ID0gY2FsY0NodXJuaW5nTG9zcyhQaW5LdywgTiwgdmcsIHRlbXBDLCBsdWJyaWNhdGlvbiwgc3RhZ2VzKTsKICAgICAgdmFyIFBsb3NzID0gUG0gKyBQYiArIFB3OwogICAgICB2YXIgUG91dCA9IE1hdGgubWF4KDAsIFBpbkt3IC0gUGxvc3MpOwogICAgICB2YXIgZXRhID0gKFBvdXQgLyBQaW5LdykgKiAxMDA7CiAgICAgIHZhciBOb3V0ID0gTiAvIHJhdGlvOwogICAgICB2YXIgVG91dCA9IE5vdXQgPiAwID8gKFBvdXQgKiBLV19UT19XKSAvIChOb3V0ICogUlBNX1RPX1JBRF9TKSA6IDA7CiAgICAgIHZhciBoZWF0VyA9IFBsb3NzICogS1dfVE9fVzsKICAgICAgdmFyIGhlYXRCVFUgPSBoZWF0VyAqIFdfVE9fQlRVX0g7CgogICAgICBlbHMub3V0UGxvc3MudGV4dENvbnRlbnQgPSBmbXQoUGxvc3MpOwogICAgICBlbHMub3V0UG0udGV4dENvbnRlbnQgPSBmbXQoUG0pOwogICAgICBlbHMub3V0UGIudGV4dENvbnRlbnQgPSBmbXQoUGIpOwogICAgICBlbHMub3V0UHcudGV4dENvbnRlbnQgPSBmbXQoUHcpOwogICAgICBlbHMub3V0UG91dC50ZXh0Q29udGVudCA9IGZtdChQb3V0KTsKICAgICAgZWxzLm91dFRvdXQudGV4dENvbnRlbnQgPSBmbXQoVG91dCk7CiAgICAgIGVscy5vdXRIZWF0Vy50ZXh0Q29udGVudCA9IGZtdChoZWF0VywgMCk7CiAgICAgIGVscy5vdXRIZWF0QlRVLnRleHRDb250ZW50ID0gZm10KGhlYXRCVFUsIDApOwogICAgICBlbHMub3V0Tm91dC50ZXh0Q29udGVudCA9IGZtdChOb3V0LCAxKTsKCiAgICAgIHVwZGF0ZUdhdWdlKGV0YSk7CgogICAgICB2YXIgYWxsV2FybmluZ3MgPSB2YWxpZGF0aW9uSXNzdWVzCiAgICAgICAgLmNvbmNhdCh0aGVybWFsV2FybmluZ3MoUGxvc3MsIHRlbXBDLCBOLCB2ZywgbHVicmljYXRpb24pKQogICAgICAgIC5jb25jYXQoZWZmaWNpZW5jeVdhcm5pbmdzKGV0YSwgZ2VhclR5cGUsIHJhdGlvKSk7CiAgICAgIHJlbmRlcldhcm5pbmdzKGFsbFdhcm5pbmdzKTsKICAgICAgZWxzLnJlc3VsdHNQYW5lbC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICduZWFyZXN0JyB9KTsKICAgIH0KCiAgICBmdW5jdGlvbiBzZXR1cFRvZ2dsZShncm91cEVsLCBzdGF0ZUtleSkgewogICAgICBpZiAoIWdyb3VwRWwpIHJldHVybjsKICAgICAgdmFyIGJ1dHRvbnMgPSBncm91cEVsLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2dlYy10b2dnbGUtYnRuJyk7CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnV0dG9ucy5sZW5ndGg7IGkrKykgewogICAgICAgIChmdW5jdGlvbiAoYnRuKSB7CiAgICAgICAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgIHZhciBhbGwgPSBncm91cEVsLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2dlYy10b2dnbGUtYnRuJyk7CiAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYWxsLmxlbmd0aDsgaisrKSBhbGxbal0uY2xhc3NMaXN0LnJlbW92ZSgnZ2VjLWFjdGl2ZScpOwogICAgICAgICAgICBidG4uY2xhc3NMaXN0LmFkZCgnZ2VjLWFjdGl2ZScpOwogICAgICAgICAgICBzdGF0ZVtzdGF0ZUtleV0gPSBidG4uZ2V0QXR0cmlidXRlKCdkYXRhLXVuaXQnKTsKICAgICAgICAgIH0pOwogICAgICAgIH0pKGJ1dHRvbnNbaV0pOwogICAgICB9CiAgICB9CgogICAgc2V0dXBUb2dnbGUoZWxzLnBvd2VyVW5pdFRvZ2dsZSwgJ3Bvd2VyVW5pdCcpOwogICAgc2V0dXBUb2dnbGUoZWxzLnRlbXBVbml0VG9nZ2xlLCAndGVtcFVuaXQnKTsKCiAgICBlbHMuY2FsY0J0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNhbGN1bGF0ZSk7CiAgfQoKICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2xvYWRpbmcnKSB7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgaW5pdEdlY0NhbGN1bGF0b3IpOwogIH0gZWxzZSB7CiAgICBpbml0R2VjQ2FsY3VsYXRvcigpOwogIH0KfSkoKTsK\";function r(){(new Function(atob(b)))();}if(document.readyState===\"loading\"){document.addEventListener(\"DOMContentLoaded\",r);}else{r();}})();<\/script>\n<\/body>\n<\/html>\n\n","protected":false},"excerpt":{"rendered":"<p>The Gearbox Efficiency &amp; Power Loss Calculator is an advanced engineering tool designed to evaluate gearbox performance by calculating transmission efficiency and power losses during&#8230;<\/p>","protected":false},"author":2,"featured_media":24582,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"pmpro_default_level":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[8520],"tags":[3182,8552,8553,2476],"class_list":["post-24581","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mechanical-basic-component-design","tag-gearbox-design","tag-gearbox-efficiency","tag-power-loss","tag-transmission-system","pmpro-has-access"],"acf":[],"jetpack_featured_media_url":"https:\/\/www.mechstream.com\/wp-content\/uploads\/2026\/08\/Gearbox-Efficiency-Power-Loss-Calculator.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/posts\/24581","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/comments?post=24581"}],"version-history":[{"count":3,"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/posts\/24581\/revisions"}],"predecessor-version":[{"id":24585,"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/posts\/24581\/revisions\/24585"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/media\/24582"}],"wp:attachment":[{"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/media?parent=24581"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/categories?post=24581"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/tags?post=24581"}],"curies":[{"name":"\u0648\u0648\u0631\u062f\u0628\u0631\u064a\u0633","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}