דעה אישית: AI בענף הבנייה. לקבל החלטות חכמות ומהר.

לפני שנצלול פנימה חשוב לי לציין, כי המאמר שלפניכם, נכתב על-ידי בלבד תוך קבלת עזרה מAI (ChatGPT ,Preplexity ועוד) היכן הAI השתלב במאמר זה? בלשלוף עבורי מקורות מידע ולדייק אותי מבחינה מדעית ומתמטית.

במילים אחרות? מאמר זה מדויק יותר וחסך לי בסוף היום, המון זמן עבודה ובקלות מצאתי מידע חשוב ואמיתי תוך קבלת תשובות לשאלות שלפני הAI הייתי צריך לבזבז שעות ארוכות בגלילה במסך ובמעבר בין אתרים, אולי אפילו לערב מומחה שהיה לוקח לי סכום נאה של כסף לשעת ייעוץ שיחלוק משלו לטובת יצירת המאמר. אז גם את זה חסכתי.
 

שנתחיל?

מדהים לראות איך העולם משתנה לנו מול העיניים. איך רגע אחד התעסקנו בדברים שהיו נראים לנו מהותיים ופתאום, ברגע אחד אנחנו במקום אחר לגמרי.

AI קיים בעולם משנת 1950 בערך... ההוגה הראשון של הרעיון, הראשון ששם את היד על בינה מלאכותית היה לא אחר מאלן טיורינג [1]

אז מה השתנה מאז? ובכן, הרבה.

במאמר זה אסקור עבורכם את כניסתה של הבינה המלאכותית לענף הבנייה. עולם הבנייה קרוב לליבי כי אין שליחות גדולה מזו בלתרום את חלקך בבניית ביתו של אחר.

אקדים ואומר - אני אשמח מאוד לשמוע חוות דעתכם, לדון בענייני בינה מלאכותית לעומק ואולי להצליח לעזור, להרגיע או לעורר לפעולה. אנו במהפכה. יש שיגידו שאפילו עוד לא החלה ויש שיגידו שרק הולכת ומתעצמת. יש שבנינו שירגישו פחד של ממש ״הAI יחליף את כולנו״ ויש שיכחישו ש״אין פה מהפכה וזה סתם טרנד״...

עם כניסתה של הבינה המלאכותית לחיינו אנחנו עדים לשינויים קיצוניים בענפים מסוימים ובשווקים מעניינים שעד לבינה מלאכותית לא חוו תנודות משמעותיות. למעשה, זוהי הפעם הנוספת בהיסטוריה שחוזרת על עצמה אחת לכמה מאות ויש שיגידו אלפי שנים שנכנס ״שחקן״ חדש שטורף את הקלפים בכל התחומים.

אסביר - תעשיית ההייטק המהווה ראש חץ לחדשנות מתחילה לשנות את פניה. אנו עדים לכך שתעשייה זו חווה מצד אחד ירידה חדה באיוש מקומות העבודה ומצד שני עלייה חדה בפריון החברות [1]

חברת הייטק במציאות של בינה מלאכותית, לא צריכה להעסיק מאות ואלפי עובדים בכדי לעמוד ביעדים ואף להגדיל רווחיותה.

מהנדס תוכנה בכיר שעד לא מזמן מעמדו בחברה היה כמעט מובטח ועיני זוטרים מסתכלים עליו בהערצה -כיום מעמדו משתווה, שימו לב, לChatGPT, התעלה התלמיד על רבו. הגרף שלפניכם ולפניכן מציג את התייעלותה של חברת Lemonade, מתוך דבריו של מנכ״ל החברה, מר דניאל שרייבר. במאי 2023, Lemonade הודיעה על פיטורים של כ-3% מכוח העבודה שלה, שהם כ-45 עובדים. רוב המפוטרים היו ממחלקות המחקר והפיתוח בישראל, המהווים כ-10% מכוח העבודה של החברה בארץ. החברה הדגישה כי מדובר במהלך לשיפור איכות הצוותים ולא כתוצאה מקשיים פיננסיים. הכנסות החברה ברבעון הראשון של 2023 גדלו ב-115% והגיעו ל-95.2 מיליון דולר, לעומת 44.3 מיליון דולר ברבעון המקביל אשתקד. שיעור ההפסד הגולמי (Loss Ratio) השתפר והגיע ל-87% ברבעון הראשון של 2023, לעומת 94% ברבעון השלישי של 2022. החברה דיווחה על עלייה של 23% במספר הלקוחות ועלייה של 26% בפרמיה הממוצעת ללקוח [3]

השפעה ישירה על כלל תחומי החיים, השווקים והעבודות

חשוב לציין, ייקח זמן עד שהמציאות באתר הבנייה תשתנה לחלוטין. אותו רצף על הברכיים לא יוחלף במהירות הבזק ברובוט. ייקח זמן. כמה? 20-30 שנה. כעת הרשו לי לשאול אתכם, במציאות של היום, זה נחשב הרבה זמן?

רוב בעלי ההחלטות בענף מאמינים שהמבנה של הבנייה ישתנה מהקצה אל הקצה ב-20–30 השנים הבאות: כ-80% מהם צופים שהענף ייראה שונה לחלוטין בעוד 20 שנה. לאורך זמן ארוך יותר (20–30 שנה), הצפי הוא לשינוי מהותי: בנייה אוטונומית ומבוססת מפעל תקבל תנופה, ורוב המשימות הידניות הקיימות היום (יציקה, שילוב מערכות, ריתוך ועוד) יתבצעו אוטומטית או בשיתוף רובוטים. גורמים מובילים צופים שקצב השינוי יאיץ ככל שנכשיר תקנים ונתקדם בשיטות עבודה משולבות אדם–מכונה.

בתמונה שלמעלה, ביקשתי מהAI שיתאר לי בתמונה את עתיד ענף הבנייה בעוד כמה שנים עבור מחקר שביצעתי בנושא. מהרגע שהוא סיים את התמונה ישר שאלתי את עצמי ״מה הוא יודע שאני לא?״ מהיכן הסקת המסקנה שיטיילו רובוטים באתר ויהיה אדם ניצב על מערכת הפעלה בכדי לוודא שאין טעויות? כמובן ביקשתי לחקור את העניין ביסודיות ומצאתי מחקרים מדהימים שתומכים בתמונה שיצר.
 

ניתן לראות שהוא התייחס לאחד התחומים החמים ביותר בענף שהולכים לשנות את פני התעשייה ממש, כמובן אני מדבר על בנייה אוטונומית מבוססת מפעל. מהמפעל-להרכבה. חדי עין ישימו לב שאין אדם המאייש את כלי החפירה הכבדים.

 

השינוי שעובר ועתיד לעבור ענף הבנייה

שוק הAI בענף הבנייה צפוי לזנק מ-2.4 מיליארד דולר ב-2024 ל-12.1 מיליארד דולר עד 2030 – קצב צמיחה מרשים ביותר של 31% בשנה! [4]
 

 

הערכות השוק העולמיות ממחישות את מימדי המגמה:

  • שוק ה-BIM העולמי צפוי להגיע לכ-22.9 מיליארד דולר עד 2034 (צמיחה ממוצעת של כ-11.2% לשנה) [5]
  • שוק ה-IoT בענף הבנייה צפוי להגיע לכ-50.4 מיליארד דולר עד 2032 (CAGR ~15.8%) [6]
  • השקעות ConTech על אף ירידה זמנית ב-2023, בשנת 2024 הסתכמו השקעות בתחום כ-3.1 מיליארד דולר (מעל ל-1.1% מסך כל השקעות ההון-סיכון בטכנולוגיות גלובליות) [7]

המגמה הגלובלית ברורה: הבנייה הופכת לתחום עם ביקוש גובר לכלי מידע וטכנולוגיות מתקדמות, ומשקיעים מזרימים מיליארדי דולרים לשיפור היעילות. בראיה עולמית, הצמיחה הטכנולוגית יוצרת גם

שוק בשווי עשרות מיליארדי דולרים הכולל מאות חברות מובילות (כגון Autodesk, Trimble, Bentley ועוד) המרחיבות את פעילותן [8].

דוגמאות לסטרטאפים שהתפרסמו מהתקופה האחרונה שמעידים על אימוץ נרחב של פתרונות בינה מלאכותית עבור תחומים מסוימים בקרב חברות בנייה:

  • Kraaft - הוואצאפ של ענף הבנייה. הסוף לערבוב חיים אישיים ועבודה בוואצאפ! סבב גיוס אחרון: 13.5m$
  • ⁠⁠ qbiq - מפתחת תוכנה שמאפשרת לכל אחד, גם ללא ידע אדריכלי, לתכנן, לדמיין ולייעל חללים באופן מיידי באמצעות בינה מלאכותית. סבב גיוס אחרון: 16m$
  • ⁠ Jones Software - מפתחת תוכנה מבוססת AI שמזרזת איסוף ואימות מסמכי ביטוח עבור חברות נדל”ן ובנייה, ומשלבת אותם ישירות עם מערכות ERP. סבב גיוס אחרון: 15M$
  • GovSignals - פיתחה פלטפורמה מבוססת AI שמאיצה ומפשטת את תהליך האיתור, ההגשה והזכייה בחוזים ממשלתיים. סבב גיוס אחרון: 5.5M$
  • Ruck - מפעילה מרקטפלייס להזמנת חומרי בנייה עם משלוח מהיר מהחנויות המקומיות ישירות לאתרי הבנייה. סבב גיוס אחרון: 5M$
  • CodeComply.Ai - מפתחת מערכת מבוססת AI שמוודאת עמידה בתקני בנייה ומזרזת את אישור התכניות עבור אדריכלים, קבלנים ורשויות. סבב גיוס אחרון: 2M$

 

קבלת החלטות בצל בינה מלאכותית

הבינה המלאכותית מביאה בשורה ושינוי מהותי עמוק בכל הקשור בקבלת החלטות. כך למשל, במחקר של חברת הייעוץ הגדולה בעולם McKinsey נמצא, שקיים פער משמעותי בין תפיסת המנהלים לבין המציאות בשטח בכל הנוגע לשימוש בבינה מלאכותית על ידי עובדים. בעוד שמנהלים בכירים מעריכים כי רק 4% מהעובדים עושים שימוש ב-AI גנרטיבי עבור לפחות 30% מהמשימות היומיות שלהם, בפועל הנתון גבוה פי שלושה: 13% מהעובדים מדווחים על שימוש כזה.[9]

 

AI בשטח, AI במשרד

נחלק את היתרונות של הבינה המלאכותית לשניים:

 במשרד

  • תהליכים ידניים: יוחלפו בבינה מלאכותית שתבצע את הפעולות במקום העובדים שבמשרד.
  • אופטימיזציה: הSUPER POWER של בינה מלאכותית לוודא שמשאבים שהוקצו מסונכרנים ו״מדברים״ זה עם זה, כך שלא יהיו יותר טעויות אנוש בדבר סנכרון משאבים ותקציב.
  • מחקר וניתוח נתונים: סיכום יתקבל במהירות הבזק, בעלויות מופחתות וללא מגע יד אדם. הבינה המלאכותית לומדת את המידע כל הזמן ויודעת להגיד היטב ובשלב מסוים, בדיוק שיא- מה קורה בפרויקט מבחינה תפעולית, תקציבית, ביטחותית ועוד.

בשטח

  • עולם הרובוטיקה, כפי שציינתי קודם לכן, עתיד להחליף עבודת כפיים. כן מה ששמעתם. ענף הרובוטיקה מתחזק במגמה העולמית ויגיע בצעדי ענק לענף הבנייה.
  • ניירת: שרטוטים, טבלאות מתישות, דוחות...נייר מודפס באתר בנייה עתיד להעלם. הדבר קורה מול העיניים שלנו והולך להתחזק בקרוב מאוד. למה להדפיס נייר אם מחכה לי בנייד התשובה לשאלה המקצועית שלי?
  • בטיחות: בשעה טובה, המודעות הולכת וגודלת אנו מתקרבים למציאות שיהיה קשה להפצע קשה או להיהרג באתר בנייה מאחר והציוד אבטחה האישי שלרשות העובד הולך להיות מתקדם ומיוחד, כזה שיתריע מהר לפני סכנה שעתידה להגיע. ובכלל, יהיו פחות פועלים באתר ויותר רובוטים או פעולות שהסתיימו כבר במפעל וללא צורך עבודה באתר.

בזמן שאנחנו ישנים בלילה במיטה, יש מי שחושב 24/7 כיצד להתייעל וכל הזמן תר אחר השאלה ״היכן ניתן לחסוך כסף?״ וכן, בינה מלאכותית עתידה להחליף את בני האדם. מי שלא ישכיל להבין את יתרונותיה ימצא עצמו לא רלוונטי. אין מכדי להפחיד אתכם קוראים יקרים, אלא להגיד לכם להתעורר ולהתחיל לעסוק בשאלה האם אני כעובד מאמץ AI כהלכה.

במאמר הבא אסקר לעומק את הפעולות השונות שעתידות להתחלף מול דוגמות ונתונים מהשטח: בעיית 170 מיליארד דולר בשנה בארה״ב! אתם מבזבזים 35% מהזמן שלכם בחיפוש מידע או התעסקות במידע לא מדויק!
 


[1] https://st.llnl.gov/news/look-back/birth-artificial-intelligence-ai-rese...

[2] https://innovationisrael.org.il/en/wp-content/uploads/sites/3/2025/01/In...

[3] https://insurtechisrael.news/lemonade-has-sent-hearing-summonses-to-part...

[4] https://www.researchandmarkets.com/reports/5301851/ai-artificial-intelli...

[5]  (Global BIM market to reach $22.9bn by 2034 | Digital Construction Today)

[6] (IoT in Construction Market to Reach USD 50.4 Billion by)

[7] (Following sharp downturn, contech funding stabilizes | Construction Dive)

[8] (Global BIM market (IoT in Construction Market to Reach USD 50.4 Billion)

[9] https://www.mckinsey.com

על המחבר
הוספת תגובה
תגובות

אין תגובות

על המחבר

רק למשתמשים רשומים גישה מלאה לכל ישומי האתר !

על מנת ליהנות מכל הפיצ'רים והשירותים אותם אנו מציעים בפורטל החדש - מומלץ לבצע הרשמה קצרה ולנהל כרטיס אישי (ניתן גם באמצעות היוזר בפייסבוק).

ההרשמה והשימוש בתכני הפורטל ללא עלות !

הירשםהתחבר

לחצת על "סל המשרות"

רק למשתמשים רשומים גישה לסל המשרות

אנו ממליצים לכם להירשם או להתחבר לאתר כדי ליהנות ולייעל את תהליך חיפוש העבודה.

משתמש שאינו רשום רשאי לשלוח קורות חיים לכל משרה בנפרד.

חזרה ללוח הדרושים | הירשם | התחבר

ניתן להשתמש בחצי המקלדת בכדי לנווט בין כפתורי הרכיב
",e=e.removeChild(e.firstChild)):"string"==typeof o.is?e=l.createElement(a,{is:o.is}):(e=l.createElement(a),"select"===a&&(l=e,o.multiple?l.multiple=!0:o.size&&(l.size=o.size))):e=l.createElementNS(e,a),e[Ni]=t,e[Pi]=o,Pl(e,t,!1,!1),t.stateNode=e,l=Ae(a,o),a){case"iframe":case"object":case"embed":Te("load",e),u=o;break;case"video":case"audio":for(u=0;u<$a.length;u++)Te($a[u],e);u=o;break;case"source":Te("error",e),u=o;break;case"img":case"image":case"link":Te("error",e),Te("load",e),u=o;break;case"form":Te("reset",e),Te("submit",e),u=o;break;case"details":Te("toggle",e),u=o;break;case"input":A(e,o),u=M(e,o),Te("invalid",e),Ie(n,"onChange");break;case"option":u=B(e,o);break;case"select":e._wrapperState={wasMultiple:!!o.multiple},u=Uo({},o,{value:void 0}),Te("invalid",e),Ie(n,"onChange");break;case"textarea":V(e,o),u=H(e,o),Te("invalid",e),Ie(n,"onChange");break;default:u=o}Me(a,u);var s=u;for(i in s)if(s.hasOwnProperty(i)){var c=s[i];"style"===i?ze(e,c):"dangerouslySetInnerHTML"===i?(c=c?c.__html:void 0,null!=c&&Aa(e,c)):"children"===i?"string"==typeof c?("textarea"!==a||""!==c)&&X(e,c):"number"==typeof c&&X(e,""+c):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(ea.hasOwnProperty(i)?null!=c&&Ie(n,i):null!=c&&x(e,i,c,l))}switch(a){case"input":L(e),j(e,o,!1);break;case"textarea":L(e),$(e);break;case"option":null!=o.value&&e.setAttribute("value",""+P(o.value));break;case"select":e.multiple=!!o.multiple,n=o.value,null!=n?q(e,!!o.multiple,n,!1):null!=o.defaultValue&&q(e,!!o.multiple,o.defaultValue,!0);break;default:"function"==typeof u.onClick&&(e.onclick=Fe)}Ve(a,o)&&(t.effectTag|=4)}null!==t.ref&&(t.effectTag|=128)}return null;case 6:if(e&&null!=t.stateNode)Ll(e,t,e.memoizedProps,o);else{if("string"!=typeof o&&null===t.stateNode)throw Error(r(166));n=yn(yu.current),yn(bu.current),Jn(t)?(n=t.stateNode,o=t.memoizedProps,n[Ni]=t,n.nodeValue!==o&&(t.effectTag|=4)):(n=(9===n.nodeType?n:n.ownerDocument).createTextNode(o),n[Ni]=t,t.stateNode=n)}return null;case 13:return zt(vu),o=t.memoizedState,0!==(64&t.effectTag)?(t.expirationTime=n,t):(n=null!==o,o=!1,null===e?void 0!==t.memoizedProps.fallback&&Jn(t):(a=e.memoizedState,o=null!==a,n||null===a||(a=e.child.sibling,null!==a&&(i=t.firstEffect,null!==i?(t.firstEffect=a,a.nextEffect=i):(t.firstEffect=t.lastEffect=a,a.nextEffect=null),a.effectTag=8))),n&&!o&&0!==(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!==(1&vu.current)?rs===Qu&&(rs=Yu):(rs!==Qu&&rs!==Yu||(rs=Gu),0!==us&&null!==es&&(To(es,ns),Co(es,us)))),(n||o)&&(t.effectTag|=4),null);case 4:return wn(),Ol(t),null;case 10:return Zt(t),null;case 17:return It(t.type)&&Ft(),null;case 19:if(zt(vu),o=t.memoizedState,null===o)return null;if(a=0!==(64&t.effectTag),i=o.rendering,null===i){if(a)mr(o,!1);else if(rs!==Qu||null!==e&&0!==(64&e.effectTag))for(i=t.child;null!==i;){if(e=_n(i),null!==e){for(t.effectTag|=64,mr(o,!1),a=e.updateQueue,null!==a&&(t.updateQueue=a,t.effectTag|=4),null===o.lastEffect&&(t.firstEffect=null),t.lastEffect=o.lastEffect,o=t.child;null!==o;)a=o,i=n,a.effectTag&=2,a.nextEffect=null,a.firstEffect=null,a.lastEffect=null,e=a.alternate,null===e?(a.childExpirationTime=0,a.expirationTime=i,a.child=null,a.memoizedProps=null,a.memoizedState=null,a.updateQueue=null,a.dependencies=null):(a.childExpirationTime=e.childExpirationTime,a.expirationTime=e.expirationTime,a.child=e.child,a.memoizedProps=e.memoizedProps,a.memoizedState=e.memoizedState,a.updateQueue=e.updateQueue,i=e.dependencies,a.dependencies=null===i?null:{expirationTime:i.expirationTime,firstContext:i.firstContext,responders:i.responders}),o=o.sibling;return Mt(vu,1&vu.current|2),t.child}i=i.sibling}}else{if(!a)if(e=_n(i),null!==e){if(t.effectTag|=64,a=!0,n=e.updateQueue,null!==n&&(t.updateQueue=n,t.effectTag|=4),mr(o,!0),null===o.tail&&"hidden"===o.tailMode&&!i.alternate)return t=t.lastEffect=o.lastEffect,null!==t&&(t.nextEffect=null),null}else 2*ru()-o.renderingStartTime>o.tailExpiration&&1t)&&vs.set(e,t)))}}function Ur(e,t){e.expirationTimee?n:e,2>=e&&t!==e?0:e}function qr(e){if(0!==e.lastExpiredTime)e.callbackExpirationTime=1073741823,e.callbackPriority=99,e.callbackNode=$t(Vr.bind(null,e));else{var t=Br(e),n=e.callbackNode;if(0===t)null!==n&&(e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90);else{var r=Fr();if(1073741823===t?r=99:1===t||2===t?r=95:(r=10*(1073741821-t)-10*(1073741821-r),r=0>=r?99:250>=r?98:5250>=r?97:95),null!==n){var o=e.callbackPriority;if(e.callbackExpirationTime===t&&o>=r)return;n!==Yl&&Bl(n)}e.callbackExpirationTime=t,e.callbackPriority=r,t=1073741823===t?$t(Vr.bind(null,e)):Wt(r,Hr.bind(null,e),{timeout:10*(1073741821-t)-ru()}),e.callbackNode=t}}}function Hr(e,t){if(ks=0,t)return t=Fr(),No(e,t),qr(e),null;var n=Br(e);if(0!==n){if(t=e.callbackNode,(Ju&(Wu|$u))!==Hu)throw Error(r(327));if(lo(),e===es&&n===ns||Kr(e,n),null!==ts){var o=Ju;Ju|=Wu;for(var a=Yr();;)try{eo();break}catch(t){Xr(e,t)}if(Gt(),Ju=o,Bu.current=a,rs===Ku)throw t=os,Kr(e,n),To(e,n),qr(e),t;if(null===ts)switch(a=e.finishedWork=e.current.alternate,e.finishedExpirationTime=n,o=rs,es=null,o){case Qu:case Ku:throw Error(r(345));case Xu:No(e,2=n){e.lastPingedTime=n,Kr(e,n);break}}if(i=Br(e),0!==i&&i!==n)break;if(0!==o&&o!==n){e.lastPingedTime=o;break}e.timeoutHandle=Si(oo.bind(null,e),a);break}oo(e);break;case Gu:if(To(e,n),o=e.lastSuspendedTime,n===o&&(e.nextKnownPendingLevel=ro(a)),ss&&(a=e.lastPingedTime,0===a||a>=n)){e.lastPingedTime=n,Kr(e,n);break}if(a=Br(e),0!==a&&a!==n)break;if(0!==o&&o!==n){e.lastPingedTime=o;break}if(1073741823!==is?o=10*(1073741821-is)-ru():1073741823===as?o=0:(o=10*(1073741821-as)-5e3,a=ru(),n=10*(1073741821-n)-a,o=a-o,0>o&&(o=0),o=(120>o?120:480>o?480:1080>o?1080:1920>o?1920:3e3>o?3e3:4320>o?4320:1960*Uu(o/1960))-o,n=o?o=0:(a=0|l.busyDelayMs,i=ru()-(10*(1073741821-i)-(0|l.timeoutMs||5e3)),o=i<=a?0:a+o-i),10 component higher in the tree to provide a loading indicator or placeholder to display."+N(i))}rs!==Zu&&(rs=Xu),l=yr(l,i),f=a;do{switch(f.tag){case 3:u=l,f.effectTag|=4096,f.expirationTime=t;var w=Ar(f,u,t);ln(f,w); break e;case 1:u=l;var E=f.type,k=f.stateNode;if(0===(64&f.effectTag)&&("function"==typeof E.getDerivedStateFromError||null!==k&&"function"==typeof k.componentDidCatch&&(null===ms||!ms.has(k)))){f.effectTag|=4096,f.expirationTime=t;var _=Ir(f,u,t);ln(f,_);break e}}f=f.return}while(null!==f)}ts=no(ts)}catch(e){t=e;continue}break}}function Yr(){var e=Bu.current;return Bu.current=Cu,null===e?Cu:e}function Gr(e,t){eus&&(us=e)}function Jr(){for(;null!==ts;)ts=to(ts)}function eo(){for(;null!==ts&&!Gl();)ts=to(ts)}function to(e){var t=Fu(e.alternate,e,ns);return e.memoizedProps=e.pendingProps,null===t&&(t=no(e)),qu.current=null,t}function no(e){ts=e;do{var t=ts.alternate;if(e=ts.return,0===(2048&ts.effectTag)){if(t=br(t,ts,ns),1===ns||1!==ts.childExpirationTime){for(var n=0,r=ts.child;null!==r;){var o=r.expirationTime,a=r.childExpirationTime;o>n&&(n=o),a>n&&(n=a),r=r.sibling}ts.childExpirationTime=n}if(null!==t)return t;null!==e&&0===(2048&e.effectTag)&&(null===e.firstEffect&&(e.firstEffect=ts.firstEffect),null!==ts.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=ts.firstEffect),e.lastEffect=ts.lastEffect),1e?t:e}function oo(e){var t=qt();return Vt(99,ao.bind(null,e,t)),null}function ao(e,t){do lo();while(null!==gs);if((Ju&(Wu|$u))!==Hu)throw Error(r(327));var n=e.finishedWork,o=e.finishedExpirationTime;if(null===n)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,n===e.current)throw Error(r(177));e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90,e.nextKnownPendingLevel=0;var a=ro(n);if(e.firstPendingTime=a,o<=e.lastSuspendedTime?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:o<=e.firstSuspendedTime&&(e.firstSuspendedTime=o-1),o<=e.lastPingedTime&&(e.lastPingedTime=0),o<=e.lastExpiredTime&&(e.lastExpiredTime=0),e===es&&(ts=es=null,ns=0),1u&&(c=u,u=l,l=c),c=Ue(w,l),f=Ue(w,u),c&&f&&(1!==k.rangeCount||k.anchorNode!==c.node||k.anchorOffset!==c.offset||k.focusNode!==f.node||k.focusOffset!==f.offset)&&(E=E.createRange(),E.setStart(c.node,c.offset),k.removeAllRanges(),l>u?(k.addRange(E),k.extend(f.node,f.offset)):(E.setEnd(f.node,f.offset),k.addRange(E)))))),E=[];for(k=w;k=k.parentNode;)1===k.nodeType&&E.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof w.focus&&w.focus(),w=0;w=t&&e<=t}function To(e,t){var n=e.firstSuspendedTime,r=e.lastSuspendedTime;nt||0===n)&&(e.lastSuspendedTime=t),t<=e.lastPingedTime&&(e.lastPingedTime=0),t<=e.lastExpiredTime&&(e.lastExpiredTime=0)}function Co(e,t){t>e.firstPendingTime&&(e.firstPendingTime=t);var n=e.firstSuspendedTime;0!==n&&(t>=n?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:t>=e.lastSuspendedTime&&(e.lastSuspendedTime=t+1),t>e.nextKnownPendingLevel&&(e.nextKnownPendingLevel=t))}function No(e,t){var n=e.lastExpiredTime;(0===n||n>t)&&(e.lastExpiredTime=t)}function Po(e,t,n,o){var a=t.current,i=Fr(),l=su.suspense;i=jr(i,a,l);e:if(n){n=n._reactInternalFiber;t:{if(J(n)!==n||1!==n.tag)throw Error(r(170));var u=n;do{switch(u.tag){case 3:u=u.stateNode.context;break t;case 1:if(It(u.type)){u=u.stateNode.__reactInternalMemoizedMergedChildContext;break t}}u=u.return}while(null!==u);throw Error(r(171))}if(1===n.tag){var s=n.type;if(It(s)){n=Dt(n,s,u);break e}}n=u}else n=Al;return null===t.context?t.context=n:t.pendingContext=n,t=on(i,l),t.payload={element:e},o=void 0===o?null:o,null!==o&&(t.callback=o),an(a,t),Dr(a,i),i}function Oo(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function Ro(e,t){e=e.memoizedState,null!==e&&null!==e.dehydrated&&e.retryTime