סריקת חשבוניות אוטומטית - חיסכו זמן וכסף בעיבוד חשבוניות

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

מאות לקוחות חוסכים מדי יום שעות של עבודה ידנית

תכונות עיקריות ומקרי שימוש:

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

שיתוף החשבונית במייל / ווצאפ

לאחר שהופקה החשבונית תשלח ללקוח למייל או לכל דרך תקשורת אפשרית החשבונית כקובץ PDF

שיתוף החשבונית במייל / ווצאפ

לאחר שהופקה החשבונית תשלח ללקוח למייל או לכל דרך תקשורת אפשרית החשבונית כקובץ PDF

הפקת הזמנה וחשבוניות אוט'

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

הפקת הזמנה וחשבוניות אוט'

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

סנכרון לקוחות ופריטים

כשלקוח מוקם ב-CRM יהיה עדכון או הקמה של הלקוח ב-ERP ולהפך

סנכרון לקוחות ופריטים

כשלקוח מוקם ב-CRM יהיה עדכון או הקמה של הלקוח ב-ERP ולהפך

העתקה והמרת נתונים

תהליך המרת נתונים והעתקה בזמן אמת בין המערכת השונות

העתקה והמרת נתונים

תהליך המרת נתונים והעתקה בזמן אמת בין המערכת השונות

למה לבחור ב- Engini?

למה לבחור ב-Engini?

בסרטון ניתן לראות:

קבלת חשבונית במייל שזוהתה אוטומטית על ידי מערכת ENGINI. המערכת הפעילה אייג’נט של OpenAI , הנתונים מועברים לטופס בדיקה ב-monday לצורך סבב חתימות. לאחר אישורו, ENGINI יוצרת חשבונית חדשה במערכת Priority ERP ושולחת אותה ללקוח במייל – כל התהליך מתבצע ללא מגע יד אדם.

הסרטון מדגיש את האוטומציה החכמה והחיסכון בזמן של התהליך.

שתפו את האוטומציה עם כל מי שתרצו

ניתן לשתף את התהליך בין חברות הבת או שותפים עסקיים

החזר ההשקעה בין ימים לשבועות אחדים

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

שאלות נפוצות

 כל מה שאתה צריך לדעת על המוצר והתשלום

מה זה אנג'יני ואיך זה עובד?

Engini היא פלטפורמת NO-CODE המאפשרת לך ליצור ולבצע אוטומציה של תהליכים עסקיים המשתלבים עם מערכות הליבה של התוכנה שלך, כגון יישומי ERP ו-SaaS. אנג’יני מתפקדת כמנוע אוטומציה מתוחכם כדי להבטיח אוטומציה חלקה של זרימות עבודה במערכות שונות.

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

ERP: Priority, NetSuite, SAP, QuickBooks, Oracle, Microsoft Dynamics 365, Odoo, Acumatica, Sage, Xero | CRM: Salesforce, HubSpot, Zoho, Pipedrive | ניהול משימות: ClickUp, Jira, AirTable, Monday.com, Asana |  פלטפורמות ענן: AWS, Google Cloud, Azure | שירותי משלוח: FedEx, UPS, HFD, Chita Delivery | פלטפורמות מסחר אלקטרוני: Shopify, Amazon, eBay, WooCommerce, Wix, Magento | פלטפורמות מודעות: TikTok, WhatsApp, WordPress – Elementor, Instagram,  Facebook | מערכות משאבי אנוש: HiBob, Workday, PeopleSoft, BambooHR | אחר: Google Sheets, CSV/Excel, Slack, Mailchimp, Google Drive, OneDrive, Dropbox, Zendesk, Freshdesk, Gmail, Outlook | תשלומים: Stripe, PayPal, PayMe, Tranzila, HYP, Expensify, Bill.com | אבטחה והרשאות: JumpCloud, Okta, Active Directory | OCR: חשבונית, מסמך משאבי אנוש, דרכון ותעודה מזהה, קורות חיים.

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

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

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

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

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

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

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

אנג’יני נתמכת בכל הדפדפנים המודרניים והמעודכנים, כולל גוגל כרום, אפל ספארי, מיקרוסופט אדג’ ומוזילה פיירפוקס.

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

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

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

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

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

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

אנג’יני היא פלטפורמת אינטגרציה כשירות (iPaaS) שמתחברת למגוון רחב של מערכות ERP, SaaS, מערכות מורשות ומקומיות, כולל Xero, NetSuite, Priority, Salesforce, Monday.com, ועוד רבות אחרות. זה מאפשר זרימה חלקה של נתונים ואוטומציה של תהליכים בתוך אקוסיסטם התוכנה של הארגון שלך.

כן, לאנג’יני יש תוכנית שותפים. ניתן להשאיר פרטים באתר הבית כדי לקבל את הפרטים המלאים.

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

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

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

“חסכנו מאות שעות הקלדה ידנית, הורדנו ב-95% טעויות אנוש בהקלדת נתונים והיום אפר להגיד שכל מערכות המידע שלנו מחוברות אחת לשנייה מקצה לקצה”

רוצים לשמוע עוד ולקבל פרטים?

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

You can use the keyboard arrows to navigate between the component buttons
",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